Salut,
J’ai un petit soucis de format de date:
Je me place sur une cellule, puis je lance ma macro par une combinaison, celà m’ouvre mon userform contenant en autre un champ permettant d’indiquer un Jour.
Le mois et l’année sont récupérés sur une cellule de la feuille (D1)
Lorsque que je valide par un bouton ok, ça m’exécute une macro qui retranscrit toutes les infos que j’ai tapé dans l’userform sur différente cellule.
Extrait de la macro:
ActiveCell = UserForm1.TextBox17.Value & "/" & Month(Range("d1")) & "/" & Year(Range("d1"))
ActiveCell.NumberFormat = "mm/dd/yyyy"
Je veux que la date s’écrive dd/mm/aaaa (donc j’ai inversé mm et dd dans ma macro sinon la date est au format anglais dans excel)
Problème:
lorsque j’écris 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 dans le textbox la date s’écrit dans la cellule comme désiré, c’est à dire pour mai 2008: 01/05/2008 ou 12/05/2008
Mais
A partir de 13 jusqu’a 31, la date d’écrit 13/5/2008 ou 31/5/2008
Je ne comprend pas ou ça coince, pourriez vous m’aider à m’en sortir svp ?
Edité le 07/05/2008 à 20:08
Tout le problème est là
Excel ne sait pas forcément ce que tu veux faire, donc il fait ce que tu lui as écrit de faire
Je te donne une piste pour voir où ça cloche :
remplace
ActiveCell.NumberFormat = “mm/dd/yyyy”
par
ActiveCell.NumberFormat = “mmmm/dddd/yyyy”
Merci de ta réponse, et merci de me faire réfléchir :kaola:
Donc je comprend dans ce que tu dis que je me trompe sur le format mm/dd/yyyy
il traduit le champ Textbox comme un Mois ce qui explique qu’il pose problème à partir de 13 (j’aurai du le remarquer, mais bon il était tard :D)
Je change, pour:
ActiveCell.NumberFormat = “dd/mm/yyyy” (à la place de mm/dd/yyyy)
Textbox = 1 en mai 2008, j’obtiens 05/01/2008 (Alignement à droite dans la cellule)
Textbox = 15, j’obtiens 15/5/2008 (alignement à gauche dans la cellule)
Idem pour “mm/dd/yyyy” :o( donc je suis sur la mauvaise voie
:yeux1:
Solution que je viens de trouver grace à ta mise en évidence:
ActiveCell.Value = Month(Range("d1")) & "/" & UserForm1.TextBox17.Value & "/" & Year(Range("d1"))
ActiveCell.NumberFormat = "dd/mm/yyyy"
mettre la valeur du textbox APRES le mois !
Merci Gcc :super::hello: