En VBA, il est possible de fair interagir l’application (ou la macro si vous préférez) avec l’utilisateur. Cela se passe grâce aux différentes boîtes de dialogue – de la simple information à la demande de saisie de valeur paramétrée.
1) MsgBox en VBA
MsgBox : permet d’afficher un message simple.
Par exemple, ouvrez Visual Basic (ALT + F11 en raccourci clavier) et tapez le code suivant :
Sub essai_msgbox ()
MsgBox « Bonjour ! »
End Sub
Lors de l’exécution, vous obtenez ceci :
VbOKonly
(exemple ci-dessus), mais vous pouvez en essayer d’autres comme le VbExclamation
, le VbYesNo
.À la base, en VBA, l’exécution de votre macro est suspendue pendant qu’un MsgBox est affiché. Et il faut attendre la confirmation par l’utilisateur pour que la macro se remet en route. Mais il est possible de créer un MsgBox qui se ferme automatiquement après un certain temps!
InputBox en VBA
Par exemple, saisissez le code suivant :Sub essai_inputbox ()
nom = InputBox (« Quel est votre nom ? », « Votre nom »)
Range(« A1 »).Value = nom
End Sublors de l’exécution, vous obtenez le message suivant, et en y répondant, la valeur saisie se retrouve en A1 de votre feuille :
3) Application.InputBox
Application.InputBox : permet de saisir une valeur en répondant à la question posée et de la stocker dans une variable, mais en plus en déterminant le type de valeur attendue.
Les types de valeurs peuvent être les suivants :
0: Formule
1: Nombre
2: Texte
4: Valeur logique (True or false)
8: Référence de cellule
16: Valeur d’erreur
64: Tableau de valeurs
Par exemple, saisissez le code suivant dans l’éditeur de VBA :
Sub essai_application_inputbox ()
age = Application.Inputbox(« Quel est votre âge ? », type:=1)
Range(« A1 »).Value = age
End Sub
En cas de non respect du format numérique, un message préviendra l’utilisateur de l’erreur :
Amusez-vous bien avec les « box » et bon code !
Bonjour.
Merci pour le Tuto.
J’aimerais savoir si l’on pourra saisir plusierurs valeurs avec une seule commande inputBox.