La fonction MsgBox est l’une des fonctions VBA les plus utiles. De nombreux exemples de ce chapitre utilisent cette fonction pour afficher la valeur d’une variable.
Cette fonction est souvent un bon substitut à une simple boîte de dialogue personnalisée. C’est également un excellent outil de débogage, car vous pouvez insérer des fonctions MsgBox à tout moment pour suspendre votre code et afficher le résultat d’un calcul ou d’une affectation.
La plupart des fonctions renvoient une valeur unique, que vous affectez à une variable. La fonction MsgBox renvoie non seulement une valeur, mais affiche également une boîte de dialogue à laquelle l’utilisateur peut répondre. La valeur renvoyée par la fonction MsgBox représente la réponse de l’utilisateur à la boîte de dialogue. Vous pouvez utiliser la fonction MsgBox même si vous ne vous intéressez pas à la réponse de l’utilisateur mais que vous souhaitez profiter de l’affichage du message.
La syntaxe de la fonction MsgBox a cinq arguments (ceux entre crochets sont optionnel):
= MsgBox(prompt[, buttons][, title][, helpfile, context])
■ prompt: C’est un argument obligatoire pour la fonction MsgBox qui spécifie le texte affiché dans la boîte de message. prompt est un argument String, ce qui signifie que vous devez taper le texte de votre choix; il peut contenir jusqu’à 1023 caractères, bien que ce soit généralement une bonne idée d’être plus concis que cela. (Toute prompt de plus de 1023 caractères est tronquée à 1023 caractères sans avertissement.)
■ butons: C’est un argument facultatif qui contrôle le type de boîte de message que VBA affiche en spécifiant les boutons qu’il contient. Par exemple, comme vous le verrez dans quelques pages, vous pouvez afficher une boîte de message avec juste un bouton OK; avec les boutons OK et Annuler; avec les boutons Abandonner, Réessayer et Ignorer; etc. Vous pouvez également ajouter des arguments à l’argument des boutons qui contrôlent l’icône dans la boîte de message et la modalité de la boîte de message.
■ title: C’est un argument facultatif qui contrôle la barre de titre de la boîte de message. Si vous ne spécifiez pas de titre, VBA utilise le titre de l’application: Microsoft Excel. En général, il est préférable de spécifier le titre car le nom de l’application en lui-même n’est pas utile.
■ helpfile: C’est un argument facultatif qui contrôle le fichier d’aide que VBA affiche lorsque l’utilisateur appuie sur F1 dans la boîte de message pour obtenir de l’aide (ou clique sur le bouton Aide dans une boîte de message contenant un bouton Aide).
■ context: C’est un argument facultatif qui contrôle la rubrique du fichier d’aide vers laquelle VBA accède. Si vous spécifiez l’argument du fichier d’aide, vous devez également spécifier l’argument de contexte.
Exemple de message standard de la boite de dialogue Msgbox
Les différentes possibilités pour le second argument de MsgBox
Constante | Valeur | Description |
---|---|---|
vbOKOnly | 0 | Affiche le boutonOK uniquement. |
vbOKCancel | 1 | Affiche les boutons OK et Annuler. |
vbAbortRetryIgnore | 2 | Affiche les boutonsAbandonner, Réessayer, et Ignorer. |
vbYesNoCancel | 3 | Affiche les boutons Oui, Non et Annuler. |
vbYesNo | 4 | Affiche les boutons Oui et Non. |
vbRetryCancel | 5 | Affiche les boutons Réessayer et Annuler. |
vbCritical | 16 | Affiche l’icôneMessage critique. |
vbQuestion | 32 | Affiche l’icôneRequête d’avertissement. |
vbExclamation | 48 | Affiche l’icôneMessage d’avertissement. |
vbInformation | 64 | Affiche l’icôneMessage d’information. |
vbDefaultButton1 | 0 | Le premier bouton est le bouton par défaut. |
vbDefaultButton2 | 256 | Le deuxième bouton est le bouton par défaut. |
vbDefaultButton3 | 512 | Le troisième bouton est le bouton par défaut. |
vbDefaultButton4 | 768 | Le quatrième bouton est le bouton par défaut. |
vbApplicationModal | 0 | Boîte de dialogue modale. L’utilisateur doit répondre au message affiché dans la zone de message avant de pouvoir continuer de travailler dans l’application actuelle. |
vbSystemModal | 4 096 | Modal système. Toutes les applications sont interrompues jusqu’à ce que l’utilisateur réponde au message affiché dans la zone de message. |
vbMsgBoxHelpButton | 16384 | Ajoute le boutonAide à la zone de message. |
vbMsgBoxSetForeground | 65536 | Indique la fenêtre de zone de message comme fenêtre de premier plan. |
vbMsgBoxRight | 524288 | Le texte est aligné à droite. |
vbMsgBoxRtlReading | 1048576 | Spécifie que le texte doit apparaître pour être lu de droite à gauche dans les systèmes en Arabe et en Hébreu. |