Mystère! Date dans textbox dd/mm qui s'affiche mm/dd sur feuille

Bonjour,

Si dans une Userform, je rentre une date (dd/mm/aa) (dans une Texbox) qui remplit une cellule Excel, le mois et le jour de celle-ci sont inversés dans la cellule! (format mm/dd/aaaa).

Quelqu'un peut m'expliquer pourquoi le mois et l'année s'inversent lorsque je rentre une date dans ma textbox au format dd/mm/aa? Sachant qu'elle n'est pas configurée pour une date en particulier, si j'écris "coucou", ça affichera bien "coucou" dans ma cellule de destination.

Pour pallier ce problème actuellement, la seule solution que j'ai trouvé qui fonctionne est de mettre la cellule au format date mm/dd/aa qui du coup m'affiche la même chose que ce que j'ai saisi...

Je pense qu'il y a une explication à ce problème car là c'est une grosse bidouille que j'ai fait ^^

Merci!!

Bonjour,

C'est durant l'évènement qui te permet de valider le contenu de ta "textboxdate" dans l'une

des cellules excel ; tu dois lui préciser qu'il s'agit d'une date et le format :

Exemple évènement : Bouton validation (clic)

Worksheets("Feuil1").cells(1, 1).value= format(cdate(textboxdate), "mm/dd/yyyy")

Bonjour,

Arrh ! Ne jamais utiliser Format pour affecter une date : Format produit du texte !

Reprenons, le phénomène n'a rien de mystérieux et il est normal (nonobstant le fait que Microsoft aurait pu faire en sorte qu'il en soit autrement, mais n'en a rien à f... !)

Tu penses saisir une date dans ta TextBox, mais ce n'est par définition que du texte, ayant un format de date.

Lorsque tu affectes ce texte à une cellule, VBA l'identifie comme date et convertit en date, mais sa reconnaissance se base sur un format américain, et dès lors que ton jour est inférieur à 13 tu te retrouves avec une inversion jour/mois.

On l'évite en forçant VBA à convertir avec CDate : on affecte CDate(TextBox1.Value). Là VBA fait opérer la reconnaissance du format de date, mais selon les paramètres de ton système, soit FR !

Cordialement.

Bien le Bonjour MFerrand.

J'avoue que je n'avais pas essayé sans "format" vu que cela fonctionnait dans mon fichier et que j'ai bien une date

Super, merci pour l'explication très claire!

J'avoue que je n'avais pas essayé sans "format" vu que cela fonctionnait dans mon fichier et que j'ai bien une date

Xmenpl : là tu as la chance qu'Excel recevant un texte ayant un format de date identifiable selon tes paramètres FR opère la conversion en date. C'est ce qui se passe lors d'une saisie manuelle : tu tapes du texte, Excel le reconnaît comme date selon tes paramètres, le convertit en date, applique un format de date à la cellule (si elle était antérieurement au format standard) et stocke la date sous forme de valeur numérique.

Mais cela ne se produit pas toujours lors d'une affectation externe, et tu peux te retrouver avec du texte au lieu d'une date dans la cellule.

Bonne journée.

Oui bien compris , d'autant plus que ta formule est bien moins longue à écrire

Rechercher des sujets similaires à "mystere date textbox qui affiche feuille"