je fais à nouveau appelle à vos lumières car je bute à nouveau sur un bout de code vba qui me permettrai d'ouvrir une inputbox pour faire saisir une date au format jj/mm/aaaa. Cette date se reporterait sur 2 cellules, chacune étant sur 2 feuilles différentes dans le même classeur.
Voici le code en question:
Dim aa
Do
aa = CDate(InputBox("Saisir la date de l'OD au format jj/mm/aaaa", _
"Date OD", Format("dd/mm/yyyy")))
If IsDate(aa) = False Then
MsgBox "Date obligatoire"
Loop Until IsDate(aa) = True
If IsDate(aa) Then Sheets("Compil").Range("M1").Value = CDate(aa)
If IsDate(aa) Then Sheets("OD").Range("B2").Value = CDate(aa)
Le problème se situe au niveau de la boucle puisqu'il me renvoi un message d'erreur "Boucle sans Do".
J'ai testé le code sans cette partie et ça fonctionne puisqu'il me renvoie bien ce que je saisie dans l'inputbox dans les cellules de destination.
Maintenant si je saisie n'importe quoi ou rien du tout dans l'inputbox je veux qu'il me renvoie un message d'erreur puis ouvre à nouveau l'inputbox pour forcer la personne à saisir une date correcte.
J'avoue qu'avec mon niveau débutant je sèche sur le problème.
Merci d'avance pour l'aide que vous pourrez m'apporter.
Do
aa = CDate(InputBox("Saisir la date de l'OD au format jj/mm/aaaa", _
"Date OD", Format("dd/mm/yyyy")))
If IsDate(aa) = False Then
MsgBox "Date obligatoire"
End If
Loop Until IsDate(aa) = True
Pierrot, juste deux humbles petites remarques (dont une d’esthète concernant ton code), où je lui préfère la forme suivante et où il faut retirer le CDate() car sinon n'importe quelle suite de chiffre saisie - ou presque - peut être convertie en date:
VB:
Do
aa = InputBox("Saisir la date de l'OD au format jj/mm/aaaa", _
"Date OD", Format("dd/mm/yyyy"))
If IsDate(aa) Then Exit Do
MsgBox "Date obligatoire"
Loop
aarf... ce n'est pas mon code, c'est celui de notre ami où je n'ai fait que rajouter un "end if", afin peut être d'empêcher son message d'erreur "Boucle sans Do".