Mauvais format date DT picker

Bonjour à tous !

Si dessous un bout de code qui me permet de coller des informations d'un userform sur une feuille

Cependant lorsque j'ajoute les informations du userform le format date provenant du DT picker apparaît en format anglais mm/dd/yyyy alors que j'ai bien tenté d'imposer l'autre format

Sauriez-vous comment y remédier ?

Merci d'avance !

With ThisWorkbook.Worksheets("Actions")
derl = .Cells(Rows.Count, 1).End(xlUp).Row + 1
D_act = .Range("A2:I" & derl).Value
.Cells(derl, 1).Resize(1, 9) = _
Array(Cb_lof.Value, cb_eqpt.Value, cb_op.Value, tb_action.Value, tb_com.Value, tb_pilote.Value, cb_zone.Value, Format(DTP_jalon.Value, "dd/mm/yyyy"), Cb_statut.Value)
End With
End Sub

Bonjour,

utilise CDate() ou DateValue()

eric

Bonjour, Salut Eric !

Avec ça :

     Format(DTP_jalon.Value, "dd/mm/yyyy")

tu prends la date du DTPicker, et tu la transformes en chaîne (String) !

(dès que tu utilises Format, le résultat renvoyé est une donnée String)

ce que voyant, soit une chaîne interprétable comme date, VBA l'interprète pour en faire une date ! Mais sans autre instruction il le fait sur le mode américain (sauf s'il ne peut vraiment pas !)

Tu supprimes donc la fonction Format, pour ne laisser que la valeur de DTPicker dans ton tableau, qui elle est une date, tu affectes, et ensuite tu dotes la cellule concernée du format de date adéquat...

Cordialement.

Merci MFerrand et eriiic !

Cdate répond parfaitement à mon besoin

Tu as raison MFerrand, j'avais répondu un peu vite en lisant en diagonale

eric

Salut Eric !

Pas de souci ! Ta réponse est de toute façon opératoire. D'ailleurs choisie par notre ami... ça fait un détour mais le résultat est bon...

Ce que j'ai surtout voulu dire, c'est la confusion entre format de cellule et l'utilisation de la fonction Format qui est fréquente, et faire comprendre que quand on utilise Format on a une donnée String...

Je suis comme tout le monde, je n'ai jamais tout compris du premier coup, et il y a des choses qui m'échappent encore...

Mais si on peut raccourcir les délais de compréhension, c'est un gain pour tous...

Bonne soirée.

Merci MFernand,

j'ai bien sûr prit le soin de comprendre la raison du dysfonctionnement, il me fallait cependant rajouter quelques lignes à mon code déjà lourd, alors que Cdate réglait le problème en 5lettres

Il est toujours intéressant de savoir d'où vient le problème pour éviter les futurs erreurs.

Bonjour,

Tu utilises un contrôle date, comme dit MFerrand mettre sa valeur directement est suffisant, sans conversion nécessaire.

Essaie...

eric

C'est ce que j'avais essayé en premier lieu, mais non, quand ça veut pas ça veut pas !

nananinanana a écrit :

C'est ce que j'avais essayé en premier lieu, mais non, quand ça veut pas ça veut pas !

Remplacer :

Format(DTP_jalon.Value, "dd/mm/yyyy") par DTP_jalon.Value ?

Ça doit pourtant te mettre la bonne date !

J'avais un petit doute sur le format, mais après test ça prend automatiquement le format de date par défaut.

Cordialement.

Rechercher des sujets similaires à "mauvais format date picker"