XL 2019 Format de dates dans un Userform

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

CPaq

XLDnaute Nouveau
Bonjour.

Grand-papa éprouve de la difficulté 😊

J’ai un Userform « Locataires » dans lequel je souhaite récupérer des dates faisant partie de ma feuille « Locataires » en cliquant sur le bouton « Locataire selon l’immeuble » (ou les autres boutons également). Les dates dans la feuille sont au format « AAAA-MM-JJ ». Lorsqu’elles reviennent dans le Userform, elles sont présentées au format « JJ-MM-AAAA ». De nombreuses heures de lectures/visionnement/essais infructueux plus tard, je suis au même point.

Aussi, comment m’assurer que les dates que j’inscrirais dans le Userform serait bien inscrites dans la feuille « Locataires ».

Immense merci à l’avance!
 

Pièces jointes

12/11/2026 est toujours interprété 12 novembre 2026 par VBA quand on l'affecte à une variable de type Date, jamais 11 décembre 2026 contrairement à Excel qui, lui, l'interprète toujours comme ça quand on l'affecte à une Value de Range représentant une cellule.
 
Dernière édition:
CDate sert à transformer un String en Date à destination d'une valeur de cellule, pas l'inverse. Pour transformer une Date en String la fonction Format pourrait être utilisée, mais ce n'est pas nécessaire car le format "dd/mm/yyyy" est assumé par défaut pour la conversion d'une Date en String à destination d'un contrôle qui ne peut pas valoir autre chose qu'un String.
Info: Excel stocke en réalité une Date en virgule flottante double précision en tant que valeur de cellule. Sa vraie valeur est la durée en jours de cette date depuis le 1er janvier 1900.
 
Dernière édition:
re
au pire essaie avec ".Text"
Me.TextBox11 = CDate([c.Offset(, i + 10)].text)
j'ai re testé dans le doute avant de de le dire


@Dranreb faux cdate converti en numerique de date tout ce qui peut l'être
et en affet l'affichage sera en date dans les input de type...box" y compris le msgbox

démo
et pour le coup je teste même le string2 format CA-US
le msgbox a la fin donne la même date à chaque fois
on constate donc que même si la date n'est pas au bon format dans le string elle l'est à l'affichage
tout simplement parce que vba gère nativement (MËME DANS LES VERSIONS FRANCAISES )les 3 formats de date

VB:
Sub test()
Dim dateLong As Long, datestring As String, datestring2 As String, datedate As Date
datedate = Date
datestring = CStr(datedate)
datestring2 = Format(datedate, "yyyy/mm/dd")
dateLong = CLng(Date)

MsgBox "datedate" & ";type " & TypeName(datedate) & " :  " & CDate(datedate)
MsgBox "datestring" & ";type " & TypeName(datestring) & " :  " & CDate(datestring)
MsgBox "datestring" & ";type " & TypeName(datestring2) & " :  " & CDate(datestring2)
MsgBox "datelong " & ";type " & TypeName(dateLong) & " :  " & CDate(dateLong)
End Sub
a la sortie pour vba ou excel c'est bien une date
oserais-je rappeler aussi qu'il y a la fonction native "DateValue" qui identifie et converti en date le string d'une date avec le mois en lettre a partir du moment ou il est bien orthographié
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 erreur de date
Réponses
2
Affichages
572
Réponses
2
Affichages
547
A
Réponses
2
Affichages
938
Arnnaud
A
Retour