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.
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 :
Lors de la saisie de la ligne MsgBox, si vous ajoutez une virgule après la dernière guillemet, vous verrez s'afficher l'aide à la saisie. Ainsi, le suivant est le type de bouton. Par défaut, vous aurez le 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
2) InputBox: permet de saisir une valeur en répondant à la question posée et de la stocker dans une variable.
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 :
Bonjour.
Merci pour le Tuto.
J'aimerais savoir si l'on pourra saisir plusierurs valeurs avec une seule commande inputBox.