Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Saisie obligatoire de date dans une inputbox

jim7963

XLDnaute Junior
Bonjour à tous,

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:


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.
 

Pierrot93

XLDnaute Barbatruc
Re : Saisie obligatoire de date dans une inputbox

Bonjour,

manque un "end if" à priori :
Code:
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
bon après midi
@+
 

Jam

XLDnaute Accro
Re : Saisie obligatoire de date dans une inputbox

Salut jim, Pierrot,

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


Bonne journée
 
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : Saisie obligatoire de date dans une inputbox

Re, bonjour Jam
Pierrot, juste deux humbles petites remarques (dont une d’esthète concernant ton code),
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".
 

Jam

XLDnaute Accro
Re : Saisie obligatoire de date dans une inputbox

Re,

J'me disais bien aussi qu'il y avait un truc qui clochait

Sinon, faut rajouter (c'est une proposition) la ligne suivante avant le If IsDate():
VB:
    If Len(aa) = 0 Then Exit Sub

...sinon en cas de clic sur le bouton "Annuler" on boucle encore et toujours.
 

jim7963

XLDnaute Junior
Re : Saisie obligatoire de date dans une inputbox

Merci pour vos réponses.

Effectivement il manquait le End If, mais même en le rajoutant j'avais quand même une erreur.

Jam, j'ai testé ta première proposition de code en retirant le CDate et effectivement cela marche parfaitement.

Merci beaucoup pour votre aide.
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…