Bonjour,
Je voudrais vérifier que la réponse apportée par l'utilisateur par le biais d'un Inputbox est une date... et qu'une réponse a été apportée (je suppose <> "").
Merci de votre aide.
Bonjour,
Je voudrais vérifier que la réponse apportée par l'utilisateur par le biais d'un Inputbox est une date... et qu'une réponse a été apportée (je suppose <> "").
Merci de votre aide.
Bonsoir,
un exemple d'utilisation :Mais cela implique une réponse sans possibilité d'annuler ou de fermer l'InputBox.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Dim vrDate As Variant Dim strMessage As String Dim strTitle As String strMessage = "Entrer une date au format jj/mm/aaaa" strTitle = "Saisie de la date" Do While IsNull(vrDate) Or Not IsDate(vrDate) vrDate = InputBox(strMessage, strTitle) Loop Debug.Print Format(CDate(vrDate), "dd/mm/yyyy") ' suite du code ...
Une saisie du genre "1/12" est acceptée dans ce cas elle renvoie 01/12/2017 car dans ce cas l'année en cours est implicite comme pour toute saisie partielle de date dans Office.
Bonsoir tee_grandbois,
J'étais arrivé à quelque chose de semblable (quoiqu'un peu plus lourd), mais ce qui me gêne, c'est de ne plus pouvoir utiliser le bouton d'annulation.
Je pense que je vais tester l'utilisation d'un formulaire de saisie dont je ferai varier les champs qu'il contient en fonction d'un premier enregistrement ou d'enregistrements suivants.
Merci pour ta proposition.
Oui, c'est bien le problème avec InputBox car on ne sait pas détecter (comme avec MsgBox) si on a appuyé sur OK ou Annuler parce que la fonction renvoie "" dans les deux cas si rien n'a été saisi ou si on efface.ce qui me gêne, c'est de ne plus pouvoir utiliser le bouton d'annulation.
C'est bien dommage.
Je me permets d'intervenir parce que j'ai trouvé sur un forum Office un moyen très simple de détecter l'utilisation du bouton Annuler d'une InputBox. Pratique si on veut sortir prématurément d'une procédure.
Important : bien déclarer la variable issue de l'InputBox en String
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Dim quoi as String quoi = InputBox ("Donne la valeur") If StrPtr(quoi) = 0 then MsgBox "Touche Annuler" else If Len(quoi) = 0 then MsgBox "Aucune valeur rentrée" Else MsgBox "La valeur est : " & quoi End if end If
Ce code utilise la fonction StrPtr qui est une fonction non documentée de Microsoft et qui reste bien mystérieuse. Des esprits sourcilleux pourraient mettre en garde contre son utilisation, et ils auraient raison, mais en attendant elle est bien pratique !
Partager