Communiquer avec l’utilisateur : MsgBox et InputBox
Objectif du chapitre
Afin de mieux vous équiper pour communiquer avec les utilisateurs, et ce sans avoir besoin d’écrire des centaines de lignes de code, vous allez découvrir dans ce chapitre les fonctions MsgBox et InputBox. L’affichage de message aux utilisateurs peut être à plusieurs vocations, comme lui souhaiter la bienvenue, l’informer sur le processus de votre programme mais également pour le prévenir en cas d’étapes critiques.
Ce chapitre passera ainsi en revue la fonction MsgBox, avec les boutons et les icônes que vous pouvez ajouter à vos boîtes de dialogue, et la fonction InputBox, avec les différentes options qui s’offrent à vous lorsque vous souhaitez interagir plus spécifiquement avec vos utilisateurs.
En fin de chapitre, vous trouverez une série d’exercices pour vous entraîner à adapter au mieux votre communication au travers des outils VBA.
Afficher un message à l’utilisateur : MsgBox
Quel que soit le langage informatique, il est toujours important d’afficher des informations à l’utilisateur, et d’obtenir de sa part une confirmation ou une affirmation. En VBA, cette fonction d’affichage de message se nomme MsgBox, elle se prononce « Message Box ».
La fonction MsgBox est probablement la fonction qui est la plus utilisée dans les fonctions VBA disponibles. Il est important d’en connaître l’écriture, mais également les options qui s’offrent à vous lorsque vous l’utilisez.
Affichage élémentaire avec MsgBox
Après avoir ajouté un module dans lequel vous allez pouvoir écrire votre code, commencez par taper ces quelques lignes :
Sub Salut()
'Afficher Salut à l'utilisateur
End Sub
Exemple 1 : écriture d’une première macro
Les mots-clés Sub et End Sub seront abordés dans le chapitre Procédures, fonctions et macros. Pour l’instant votre code ne contient rien d’autre qu’un commentaire. Si vous exécutez la macro, il ne se passera rien.
Pour afficher Salut à l’utilisateur, il suffit d’ajouter l’instruction suivante pour obtenir le code complet suivant :
Sub Salut()
'Afficher Salut à l'utilisateur
MsgBox "Salut"
End Sub
Exemple 2 : appel de la fonction MsgBox
Exécutez la macro, vous devriez avoir sur votre écran le message suivant qui s’affiche :
Félicitations, vous avez écrit et exécuté votre première macro ! Continuez dès à présent pour découvrir comment faire mieux.
Propriétés et syntaxe générale de la boîte de dialogue MsgBox
Lorsque vous souhaitez afficher un message, il vous faut donc écrire la fonction MsgBox, suivie du texte que vous souhaitez afficher. Le texte est compris entre guillemets.
Par défaut, la fenêtre affiche un seul bouton OK et a pour titre Microsoft Excel.
Les quatre parties qui vont vous intéresser dans les prochains paragraphes sont représentées dans l’image suivante.
Le texte est l’information principale qui est affichée dans...
Demander une information à l’utilisateur : Application.InputBox
Quand le clic sur un bouton n’est plus une option suffisamment utile pour votre programme, il vous faut utiliser d’autres moyens. Qu’il s’agisse d’un texte, d’une valeur numérique ou encore d’une cellule Excel à fournir, la fonction InputBox est un précieux outil à votre disposition.
Application.InputBox ou VBA.InputBox
Une particularité qui pourrait vous troubler dans votre apprentissage est qu’il existe deux fonctions qui se nomment InputBox en VBA. Toutes deux ont la même finalité : afficher une boîte de dialogue visant à demander une information à l’utilisateur. Vous pouvez considérer ici qu’elles ont toutes deux les mêmes propriétés et paramètres, à ceci près que vous étudierez ici Application.InputBox, qui permet une gestion plus fine encore pour les types de valeurs demandées à l’utilisateur. Vous découvrirez dans les chapitres suivants qu’ici Application fait référence à Excel. Aussi Application.InputBox n’est disponible que sous Excel, alors que InputBox seul sera accessible pour les autres applications Office (Access, Word ou Outlook pour ne nommer que celles-ci).
Exemple de visuel de la boîte de dialogue InputBox
Autre point, techniquement parlant, Application.InputBox fait appel à la méthode VBA.InputBox. Notez enfin que si vous utilisez InputBox sans préciser Application devant, la version appelée sera VBA.InputBox.
Affichage élémentaire
Application.Inputbox est une boîte de dialogue qui invite l’utilisateur à saisir une information au clavier ou à la souris dans le but d’utiliser cette information...
Exercices
Afin de mieux appréhender les différentes possibilités que les fonctions MsgBox et Application.InputBox offrent, voici une série d’exercices. Bien que vous ne sachiez pas encore réaliser des programmes élaborés, vous tenterez ici d’afficher les boîtes de dialogue respectant certaines contraintes.
Commencez par créer un module que vous nommerez Chapitre_05_Msgbox_InputBox.
Chaque exercice pourra être réalisé séparément des autres. Vous pourrez rédiger votre code entre les lignes suivantes :
Public Sub NomExercice()
'votre code ici
End Sub
Exécutez ensuite votre programme soit via le ruban Excel ou en mettant votre curseur à l’intérieur de votre programme et en cliquant sur la touche F5.
Les corrections d’exercices se situent dans le chapitre Correction des exercices, et les fichiers des corrections sont téléchargeables depuis l’onglet Compléments.
Fonction MsgBox
Bonjour le monde
À l’intérieur d’une structure :
Public Sub BonjourLeMonde()
End Sub
Écrivez une instruction qui va afficher à l’utilisateur dans une boîte de dialogue le texte simple « Bonjour le monde ».
Exécutez le code pour vérifier que vous obtenez la boîte de dialogue suivante....