Excel VBA MsgBox (Message Box) - Tout ce que vous devez savoir !

Dans Excel VBA, vous pouvez utiliser la fonction MsgBox pour afficher une boîte de message (comme indiqué ci-dessous) :

Une MsgBox n'est rien d'autre qu'une boîte de dialogue que vous pouvez utiliser pour informer vos utilisateurs en affichant un message personnalisé ou en obtenant des entrées de base (telles que Oui/Non ou OK/Annuler).

Pendant que la boîte de dialogue MsgBox s'affiche, votre code VBA est interrompu. Vous devez cliquer sur l'un des boutons de la MsgBox pour exécuter le code VBA restant.

Remarque : dans ce didacticiel, j'utiliserai les mots boîte de message et MsgBox de manière interchangeable. Lorsque vous travaillez avec Excel VBA, vous devez toujours utiliser MsgBox.

Anatomie d'une MsgBox VBA dans Excel

Une boîte de message comprend les parties suivantes :

  1. Titre: Ceci est généralement utilisé pour afficher le sujet de la boîte de message. Si vous ne spécifiez rien, il affiche le nom de l'application - qui est Microsoft Excel dans ce cas.
  2. Rapide: C'est le message que vous souhaitez afficher. Vous pouvez utiliser cet espace pour écrire quelques lignes ou même afficher des tableaux/données ici.
  3. Boutons): Bien que OK soit le bouton par défaut, vous pouvez le personnaliser pour afficher des boutons tels que Oui/Non, Oui/Non/Annuler, Réessayer/Ignorer, etc.
  4. Icône Fermer: Vous pouvez fermer la boîte de message en cliquant sur l'icône de fermeture.

Syntaxe de la fonction VBA MsgBox

Comme je l'ai mentionné, MsgBox est une fonction et a une syntaxe similaire aux autres fonctions VBA.

MsgBox( invite [, boutons ] [, titre ] [, fichier d'aide, contexte ] )

  • rapide - C'est un argument requis. Il affiche le message que vous voyez dans la MsgBox. Dans notre exemple, le texte « Ceci est un exemple de MsgBox » est l'« invite ». Vous pouvez utiliser jusqu'à 1024 caractères dans l'invite et pouvez également l'utiliser pour afficher les valeurs des variables. Si vous souhaitez afficher une invite comportant plusieurs lignes, vous pouvez également le faire (plus de détails plus loin dans ce didacticiel).
  • [boutons] - Il détermine quels boutons et icônes sont affichés dans la MsgBox. Par exemple, si j'utilise vbOkOnly, il affichera uniquement le bouton OK, et si j'utilise vbOKCancel, il affichera à la fois les boutons OK et Annuler. Je couvrirai différents types de boutons plus tard dans ce tutoriel.
  • [Titre] - Ici, vous pouvez spécifier la légende que vous voulez dans la boîte de dialogue du message. Ceci est affiché dans la barre de titre de la MsgBox. Si vous ne spécifiez rien, il affichera le nom de l'application.
  • [fichier d'aide] - Vous pouvez spécifier un fichier d'aide accessible lorsqu'un utilisateur clique sur le bouton Aide. Le bouton d'aide n'apparaîtrait que lorsque vous utilisez le code du bouton correspondant. Si vous utilisez un fichier d'aide, vous devez également spécifier l'argument de contexte.
  • [le contexte] - Il s'agit d'une expression numérique qui est le numéro de contexte d'aide affecté à la rubrique d'aide appropriée.

Si vous débutez dans le concept de Msgbox, n'hésitez pas à ignorer les arguments [helpfile] et [context]. J'ai rarement vu ceux-ci être utilisés.

Remarque : Tous les arguments entre crochets sont facultatifs. Seul l'argument « invite » est obligatoire.

Constantes du bouton Excel VBA MsgBox (exemples)

Dans cette section, je vais couvrir les différents types de boutons que vous pouvez utiliser avec une VBA MsgBox.

Avant de vous montrer le code VBA correspondant et à quoi ressemble la MsgBox, voici un tableau répertoriant toutes les différentes constantes de bouton que vous pouvez utiliser.

Constante de bouton La description
vbOKUniquement Affiche uniquement le bouton OK
vbOKAnnuler Affiche les boutons OK et Annuler
vbAbortRetryIgnorer Affiche les boutons Abandonner, Réessayer et Ignorer
vbOuiNon Affiche les boutons Oui et Non
vbOuiNonAnnuler Affiche les boutons Oui, Non et Annuler
vbRéessayerAnnuler Affiche les boutons Réessayer et Annuler
vbMsgBoxHelpButton Affiche le bouton Aide. Pour que cela fonctionne, vous devez utiliser les arguments d'aide et de contexte dans la fonction MsgBox
vbDefaultButton1 Rend le premier bouton par défaut. Vous pouvez modifier le numéro pour changer le bouton par défaut. Par exemple, vbDefaultButton2 fait du deuxième bouton le bouton par défaut

Remarque : En parcourant les exemples de création de différents boutons, vous vous demandez peut-être à quoi bon avoir ces boutons si cela n'a aucun impact sur le code.

Cela fait! En fonction de la sélection, vous pouvez coder ce que vous voulez que le code fasse. Par exemple, si vous sélectionnez OK, le code doit continuer et si vous cliquez sur Annuler, le code doit s'arrêter. Cela peut être fait en utilisant des variables et en affectant la valeur de la boîte de message à une variable. Nous aborderons cela dans les sections suivantes de ce didacticiel.

Voyons maintenant quelques exemples de la façon dont les différents boutons peuvent être affichés dans une MsgBox et à quoi cela ressemble.

Boutons MsgBox - vbOKOnly (par défaut)

Si vous utilisez uniquement l'invite et ne spécifiez aucun des arguments, vous obtiendrez la boîte de message par défaut, comme indiqué ci-dessous :

Voici le code qui donnera cette boîte de message :

Sub DefaultMsgBox() MsgBox "Ceci est un exemple de boîte" End Sub

Notez que la chaîne de texte doit être entre guillemets doubles.

Vous pouvez également utiliser la constante de bouton vbOKOnly, mais même si vous ne spécifiez rien, elle est prise par défaut.

Boutons MsgBox - OK & Annuler

Si vous souhaitez uniquement afficher les boutons OK et Annuler, vous devez utiliser la constante vbOKCancel.

Sub MsgBoxOKCancel() MsgBox "Vous voulez continuer ?", vbOKCancel End Sub

Boutons MsgBox - Abandonner, réessayer et ignorer

Vous pouvez utiliser la constante « vbAbortRetryIgnore » pour afficher les boutons Abandonner, Réessayer et Ignorer.

Sub MsgBoxAbortRetryIgnore() MsgBox "Que voulez-vous faire ?", vbAbortRetryIgnore End Sub

Boutons MsgBox - Oui et Non

Vous pouvez utiliser la constante 'vbYesNo' pour afficher les boutons Oui et Non.

Sub MsgBoxYesNo() MsgBox "Faut-il arrêter ?", vbYesNo End Sub

Boutons MsgBox - Oui, Non et Annuler

Vous pouvez utiliser la constante 'vbYesNoCancel' pour afficher les boutons Oui, Non et Annuler.

Sub MsgBoxYesNoCancel() MsgBox "Faut-il arrêter ?", vbYesNoCancel End Sub

Boutons MsgBox - Réessayer et annuler

Vous pouvez utiliser la constante 'vbRetryCancel' pour afficher les boutons Réessayer et Annuler.

Sub MsgBoxRetryCancel() MsgBox "Que voulez-vous faire ensuite ?", vbRetryCancel End Sub

Boutons MsgBox - Bouton Aide

Vous pouvez utiliser la constante 'vbMsgBoxHelpButton' pour afficher le bouton d'aide. Vous pouvez l'utiliser avec d'autres constantes de bouton.

Sub MsgBoxRetryHelp() MsgBox "Que voulez-vous faire ensuite ?", vbRetryCancel + vbMsgBoxHelpButton End Sub

Notez que dans ce code, nous avons combiné deux constantes de bouton différentes (vbRetryCancel + vbMsgBoxHelpButton). La première partie montre les boutons Réessayer et Annuler et la seconde partie montre le bouton Aide.

Boutons MsgBox - Définition d'un bouton par défaut

Vous pouvez utiliser la constante 'vbDefaultButton1' pour définir le premier bouton par défaut. Cela signifie que le bouton est déjà sélectionné et si vous appuyez sur Entrée, il exécute ce bouton.

Vous trouverez ci-dessous le code qui définira le deuxième bouton (le bouton « Non ») par défaut.

Sub MsgBoxOKCancel() MsgBox "Que voulez-vous faire ensuite ?", vbYesNoCancel + vbDefaultButton2 End Sub

Dans la plupart des cas, le bouton le plus à gauche est le bouton par défaut. Vous pouvez choisir d'autres boutons à l'aide de vbDefaultButton2, vbDefaultButton3 et vbDefaultButton4.

Constantes d'icône Excel VBA MsgBox (exemples)

Outre les boutons, vous pouvez également personnaliser les icônes affichées dans la boîte de dialogue MsgBox. Par exemple, vous pouvez avoir une icône critique rouge ou une icône d'information bleue.

Vous trouverez ci-dessous un tableau répertoriant le code qui affichera l'icône correspondante.

Icône Constante La description
vbCritique Affiche l'icône de message critique
vbQuestion Affiche l'icône de question
vbExclamation Affiche l'icône de message d'avertissement
vbInformations Affiche l'icône d'information

Icônes MsgBox - Critique

Si vous souhaitez afficher une icône critique dans votre MsgBox, utilisez la constante vbCritical. Vous pouvez l'utiliser avec d'autres constantes de bouton (en mettant un signe + entre les codes).

Par exemple, vous trouverez ci-dessous un code qui affichera le bouton OK par défaut avec une icône critique.

Sub MsgBoxCriticalIcon() MsgBox "Ceci est un exemple de boîte", vbCritical End Sub

Si vous souhaitez afficher l'icône critique avec les boutons Oui et Non, utilisez le code suivant :

Sub MsgBoxCriticalIcon() MsgBox "Ceci est un exemple de boîte", vbYesNo + vbCritical End Sub

Icônes MsgBox - Question

Si vous souhaitez afficher une icône critique dans votre MsgBox, utilisez la constante vbQuestion.

Sub MsgBoxQuestionIcon() MsgBox "Ceci est un exemple de boîte", vbYesNo + vbQuestion End Sub

Icônes MsgBox - Exclamation

Si vous souhaitez afficher une icône d'exclamation dans votre MsgBox, utilisez la constante vbExclamation.

Sub MsgBoxExclamationIcon() MsgBox "Ceci est un exemple de boîte", vbYesNo + vbExclamation End Sub

Icônes MsgBox - Informations

Si vous souhaitez afficher une icône d'information dans votre MsgBox, utilisez la constante vbInformation.

Sub MsgBoxInformationIcon() MsgBox "Ceci est un exemple de boîte", vbYesNo + vbInformation End Sub

Personnalisation du titre et de l'invite dans la MsgBox

Lorsque vous utilisez MsgBox, vous pouvez personnaliser le titre et les messages d'invite.

Jusqu'à présent, l'exemple que nous avons vu utilise Microsoft Excel comme titre. Si vous ne spécifiez pas l'argument du titre, MsgBox utilise automatiquement le titre de l'application (qui a été Microsoft Excel dans ce cas).

Vous pouvez personnaliser le titre en le spécifiant dans le code comme indiqué ci-dessous :

Sub MsgBoxInformationIcon() MsgBox "Voulez-vous continuer ?", vbYesNo + vbQuestion, "Étape 1 sur 3" End Sub

De même, vous pouvez également personnaliser le message d'invite.

Vous pouvez également ajouter des sauts de ligne dans le message d'invite.

Dans le code ci-dessous, j'ai ajouté un saut de ligne en utilisant 'vbNewLine'.

Sub MsgBoxInformationIcon() MsgBox "Voulez-vous continuer ?" & vbNewLine & "Cliquez sur Oui pour continuer", vbYesNo + vbQuestion, "Étape 1 sur 3" End Sub

Vous pouvez également utiliser le caractère de retour chariot - Chr(13) - ou le saut de ligne - Chr(10) pour insérer une nouvelle ligne dans le message d'invite.

Notez que vous pouvez ajouter une nouvelle ligne au message d'invite uniquement et non au titre.

Affectation de la valeur MsgBox à une variable

Jusqu'à présent, nous avons vu les exemples où nous avons créé des boîtes de message et personnalisé les boutons, les icônes, le titre et l'invite.

Cependant, cliquer sur un bouton n'a rien fait.

Avec la fonction MsgBox dans Excel, vous pouvez décider ce que vous voulez faire lorsqu'un utilisateur clique sur un bouton spécifique. Et cela est possible car chaque bouton a une valeur qui lui est associée.

Donc, si je clique sur le bouton Oui, la fonction MsgBox renvoie une valeur (6 ou la constante vbYes) que je peux utiliser dans mon code. De même, si l'utilisateur sélectionne le bouton Non, il renvoie une valeur différente ((7 ou la constante vbNo)) que je peux utiliser dans le code.

Vous trouverez ci-dessous un tableau qui montre les valeurs exactes et la constante renvoyée par la fonction MsgBox. Vous n'avez pas besoin de les mémoriser, il suffit d'en être conscient et vous pouvez utiliser les constantes qui sont plus faciles à utiliser.

Bouton cliqué Constant Valeur
D'accord vbOk 1
Annuler vbAnnuler 2
Avorter vbAbandonner 3
Réessayez vbRéessayer 4
Ignorer vbIgnorer 5
Oui vbOui 6
Non vbNon 7

Voyons maintenant comment contrôler le code de macro VBA en fonction du bouton sur lequel un utilisateur clique.

Dans le code ci-dessous, si l'utilisateur clique sur Oui, il affiche le message « Vous avez cliqué sur Oui », et si l'utilisateur clique sur Non, il affiche « Vous avez cliqué sur Non ».

Sub MsgBoxInformationIcon() Result = MsgBox("Voulez-vous continuer ?", vbYesNo + vbQuestion) If Result = vbYes Then MsgBox "Vous avez cliqué sur Oui" Sinon : MsgBox "Vous avez cliqué sur Non" End If End Sub

Dans le code ci-dessus, j'ai affecté la valeur de la fonction MsgBox à la variable Result. Lorsque vous cliquez sur le bouton Oui, la variable Résultat obtient la constante vbYes (ou le nombre 6) et lorsque vous cliquez sur Non, la variable Résultat obtient la constante vbNo (ou le nombre 7).

Ensuite, j'ai utilisé une construction If Then Else pour vérifier si la variable Result contient la valeur vbYes. Si c'est le cas, il affiche l'invite « Vous avez cliqué sur Oui », sinon il affiche « Vous avez cliqué sur Non ».

Vous pouvez utiliser le même concept pour exécuter un code si un utilisateur clique sur Oui et quitter le sous-programme lorsqu'il clique sur Non.

Remarque : lorsque vous affectez la sortie MsgBox à une variable, vous devez mettre les arguments de la fonction MsgBox entre parenthèses. Par exemple, dans la ligne Resultat = MsgBox("Voulez-vous continuer ?", vbYesNo + vbQuestion), vous pouvez voir que les arguments sont entre parenthèses.

Si vous souhaitez approfondir la fonction Message Box, voici le document officiel à ce sujet.

Vous aimerez peut-être également les didacticiels Excel VBA suivants :

  • Fonction de fractionnement Excel VBA.
  • Fonction Excel VBA InStr.
  • Travailler avec des cellules et des plages dans Excel VBA.
  • Travailler avec des feuilles de calcul en VBA.
  • Travailler avec des classeurs en VBA.
  • Utilisation de boucles dans Excel VBA.
  • Comprendre les types de données Excel VBA (variables et constantes)
  • Comment créer et utiliser un classeur de macros personnelles dans Excel.
  • Exemples de code de macro Excel utiles.
  • Utilisation de la boucle suivante dans Excel VBA.
  • Événements Excel VBA - Un guide simple (et complet).
  • Comment exécuter une macro dans Excel - Un guide complet étape par étape.
  • Comment créer et utiliser un complément Excel.

Vous contribuerez au développement du site, partager la page avec vos amis

wave wave wave wave wave