Blog ENI : Toute la veille numérique !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
💥 1 livre papier acheté 
= la version en ligne automatiquement offerte. Cliquez ici
  1. Livres et vidéos
  2. Macros et langage VBA
  3. Communiquer avec l’utilisateur : MsgBox et InputBox
Extrait - Macros et langage VBA  Découvrez la programmation sous Excel (2e édition)
Extraits du livre
Macros et langage VBA Découvrez la programmation sous Excel (2e édition)
7 avis
Revenir à la page d'achat du livre

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 ».

images/05SOB01N2.png

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 :

images/05SOB02N2.png

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.

images/05SOB03N2.png

Le texte est l’information principale qui est affichée dans la boîte de dialogue (1). Vous disposez ensuite d’un ou plusieurs boutons dans la partie inférieure de la boîte (2). En haut de la boîte se trouve le titre (3). Enfin, vous pouvez voir apparaître à la gauche du texte ce qu’on appelle une icône (4).

Chacune de ces propriétés sera manipulable par votre instruction, au travers de l’appel à la fonction MsgBox et des informations que vous fournirez à cette fonction.

Syntaxe générale de la fonction MsgBox

La syntaxe générale de la fonction MsgBox est la suivante :

MsgBox (MessageAffiche, [ boutons, ] [ titre, ] 
[ fichieraide, contexte ]) 

Exemple 3 : syntaxe générale de la fonction MsgBox

La première information qui est fournie à la fonction, que l’on appelle un paramètre ou un argument, est le texte qui sera affiché dans la boîte de dialogue....

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).

images/05SOB19N.png

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 dans la suite du programme.

Voici un premier exemple de code qui affiche cette boîte de dialogue.

Sub DemandeNom() 
   Application.InputBox "Veuillez saisir votre nom svp" 
End Sub 

Exemple 26 : appel de la fonction Application.InputBox

images/05SOB20N.png

Propriétés et syntaxe générales de la boîte de dialogue Application.InputBox

Vous retrouvez dans cette boîte de dialogue des propriétés similaires...

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.

images/05SOB24N.png

Jeu de boutons

À l’intérieur...