Saise de date au format Francais (VBA)
Geoman
-
Bidouilleu_R Messages postés 1209 Statut Membre -
Bidouilleu_R Messages postés 1209 Statut Membre -
Bonjour,
Je souhaite saisir des dates dans une input box en VBA. Je rencontre alors le problème du format de la date. Lorsque que je saisie 1/5/9, cela m'affiche 05/01/2009. J'ai donc contourné le problème en modifiant le format de la cellule dans mon programme et j'affiche bien 01/05/2009. Ceci dit, lorsque je saisis x/m/yyyy, avec x>12, il décrypte un mois supérieur à 12: par exemple, je saisis 24/5/9, et il me laisse 24/5/9 au lieu de 24/05/2009.
Je sais que je simplifierais grandement mon problème si je me contentais d'utiliser un masque m'obligeant à saisir dd/mm/yyyy. Mais avouez que pour taper 9 septembre 2009, il est très rapide de ne saisir que les 9, 9/9/9.
Je précise que lorsque je saisis directement sur Excel, je ne rencontre aucun problème.
Si quelqu'un a une idée, je suis preneur.
Merci d'avance.
Geoffrey.
Le code:
Flag2:
FDatEn = InputBox("Date d'Encaissement - jj/mm/aaaa", "Actualiser un Paiement")
If StrPtr(FDatEn) = 0 Then
GoTo FlagAnnul
End If
If Not IsDate(FDatEn) Then
FRep = MsgBox("L'encaissement a-t-il été effectué?", vbYesNo, "Actualiser un Paiement")
If FRep = vbYes Then
GoTo Flag2
End If
End If
CasePaiement.Offset(0, 1).Value = FDatEn
CasePaiement.Offset(0, 1).NumberFormat = "mm/dd/yyyy"
Je souhaite saisir des dates dans une input box en VBA. Je rencontre alors le problème du format de la date. Lorsque que je saisie 1/5/9, cela m'affiche 05/01/2009. J'ai donc contourné le problème en modifiant le format de la cellule dans mon programme et j'affiche bien 01/05/2009. Ceci dit, lorsque je saisis x/m/yyyy, avec x>12, il décrypte un mois supérieur à 12: par exemple, je saisis 24/5/9, et il me laisse 24/5/9 au lieu de 24/05/2009.
Je sais que je simplifierais grandement mon problème si je me contentais d'utiliser un masque m'obligeant à saisir dd/mm/yyyy. Mais avouez que pour taper 9 septembre 2009, il est très rapide de ne saisir que les 9, 9/9/9.
Je précise que lorsque je saisis directement sur Excel, je ne rencontre aucun problème.
Si quelqu'un a une idée, je suis preneur.
Merci d'avance.
Geoffrey.
Le code:
Flag2:
FDatEn = InputBox("Date d'Encaissement - jj/mm/aaaa", "Actualiser un Paiement")
If StrPtr(FDatEn) = 0 Then
GoTo FlagAnnul
End If
If Not IsDate(FDatEn) Then
FRep = MsgBox("L'encaissement a-t-il été effectué?", vbYesNo, "Actualiser un Paiement")
If FRep = vbYes Then
GoTo Flag2
End If
End If
CasePaiement.Offset(0, 1).Value = FDatEn
CasePaiement.Offset(0, 1).NumberFormat = "mm/dd/yyyy"
Configuration: Windows XP Firefox 3.5
3 réponses
-
Bonjour,
je te conseille cette démarche.
1) utilise une variable en date
2) utilise la fonction Format
3) quand tu écris dans une cellule utilise aussi le bon format.
En espérant avoir répondu à la question
un exemple
Sub test_date()
Dim La_Date As Date ' la variable
La_Date = Format(InputBox("Saisir comme ex : 01/05/2009", "Saisie de la date", ""), "dd/mm/yyyy")
Range("A1").Value = La_Date 'écriture dans la cellule
End Sub -
Niquel, cela ne pouvait pas fonctionner mieux!
Merci beaucoup.
(ps:première fois que je post, il faut valider la réponse ou quelque chose comme ça n'est ce pas? si oui comment?) -
bonjour,
content que ça marche ...mais pas surpris. : )
pour mettre le post en résolu
sur le premier post il y a des icones en haut à droite de l'entête
tu trouveras l'icones résolu.
Sinon bonne journée.
R