Saise de date au format Francais (VBA)
Geoman
-
Bidouilleu_R Messages postés 1181 Date d'inscription Statut Membre Dernière intervention -
Bidouilleu_R Messages postés 1181 Date d'inscription Statut Membre Dernière intervention -
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"
A voir également:
- Saise de date au format Francais (VBA)
- Lire le coran en français pdf - Télécharger - Histoire & Religion
- Format epub - Guide
- Format factory - Télécharger - Conversion & Codecs
- Hp usb disk storage format tool - Télécharger - Stockage
- Format apfs - Guide
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
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