MsgBox, InputBox et Application.InputBox

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 :

msgbox en VBA

 

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 :
Inputbox en VBA

 

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 :

Application.InputBox en VBA

 

Amusez-vous bien avec les « box » et bon code !

 


2 réflexions sur “MsgBox, InputBox et Application.InputBox”

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.