
La fonction MsgBox en VBA est l’une des fonction les plus utilisées. Elle permet de générer des boîtes de dialogue pour informer l’utilisateur de l’état d’exécution du programme. Vous pouvez créer des messages simples, d’avertissements, d’erreurs ou de confirmation. Dans cet article nous allons parcourir les différentes options qui vous permettront de maîtriser cette fonction.
Syntaxe de la fonction MsgBox en VBA
Tout d’abord, nous allons voir la syntaxe de la fonction afin de la décortiquer. Dans la documentation officielle de Microsoft, vous trouverez la syntaxe suivante :
MsgBox(prompt[, buttons] [, title] [, helpfile, context])
L’argument obligatoire prompt est le message à afficher dans la boîte de dialogue. L’argument prompt attend une variable de type chaîne de caractères ou une expression qui sera convertie en chaîne de caractères.
Les arguments optionnels suivants permettent de personnaliser l’apparence et le comportement de la boîte de dialogue :
- buttons : spécifie les boutons à afficher dans la boîte de dialogue. Il peut prendre l’une des valeurs suivantes : vbOKOnly (bouton OK), vbOKCancel (boutons OK et Annuler), vbAbortRetryIgnore (boutons Annuler, Réessayer et Ignorer), vbYesNoCancel (boutons Oui, Non et Annuler), vbYesNo (boutons Oui et Non) ou vbRetryCancel (boutons Réessayer et Annuler).
- title : spécifie le titre de la boîte de dialogue.
- helpfile : spécifie le nom du fichier d’aide associé à la boîte de dialogue.
- context : spécifie l’identificateur de contexte d’aide à utiliser pour la boîte de dialogue.
Exemples d’utilisation de la fonction MsgBox
Voici quelques exemples d’utilisation de la fonction MsgBox pour créer différents types de messages :
MsgBox "Bonjour, bienvenue dans notre application !", vbOKOnly, "Message de bienvenue"
VB- Affiche une boîte de dialogue avec le message « Bonjour, bienvenue dans notre application ! » et un bouton OK. Le titre de la boîte de dialogue est « Message de bienvenue ».

MsgBox "Êtes-vous sûr de vouloir supprimer ce fichier ?", vbYesNo, "Confirmation de suppression
VB- Affiche une boîte de dialogue avec le message « Êtes-vous sûr de vouloir supprimer ce fichier ? », des boutons Oui et Non et le titre « Confirmation de suppression ».

MsgBox "Erreur : le fichier n'a pas pu être ouvert", vbCritical, "Erreur d'ouverture"
VB- Affiche une boîte de dialogue avec le message « Erreur : le fichier n’a pas pu être ouvert », un bouton OK et une icône de type erreur. Le titre de la boîte de dialogue est « Erreur d’ouverture ».

Enfin, la fonction MsgBox peut également être utilisée dans des structures de contrôle telles que les conditions ou les boucles pour informer l’utilisateur de la valeur que peut prendre une variable ou de l’avancement du programme. Par exemple, dans une boucle, on pourrait afficher une boîte de dialogue pour demander à l’utilisateur s’il veut continuer à exécuter la boucle ou s’il veut l’interrompre.
Sub controle_boucle()
Dim reponse As Integer, a As Integer
reponse = 0
a = 0
While reponse <> 7
a = a + 1
If a > 7 Then
reponse = MsgBox("La variable a vaut : " & a & ". Voulez-vous continuer ?", vbYesNo, "Voulez-vous continuer ?")
End If
Wend
End Sub
VB
Dans cet exemple, la valeur a sera incrémentée de 1 tant que l’utilisateur cliquera sur « Oui ». Elle s’arrêtera dès qu’il cliquera sur « Non » car la fonction MsgBox renvoie la valeur 7 pour un clic sur ce bouton. Les valeurs renvoyées pour chaque bouton sont décrites dans la documentation. Je vous ai partagé le lien un peu plus haut dans l’article.
Conclusion
La fonction MsgBox est une fonction simple mais très utile en VBA. En utilisant les différents arguments de la fonction, vous pourrez personnaliser l’apparence et le comportement de la boîte de dialogue. Ainsi vous pourrez créer des messages clairs et utiles pour l’utilisateur. Il est important de prendre en compte la clarté et la concision du message pour éviter de créer des messages confus ou inutiles.
De plus, il est recommandé d’utiliser la fonction MsgBox de manière modérée et judicieuse. Trop de boîtes de dialogue, tue la boîte de dialogue. En effet, à chaque fois que vous utilisez cette fonction, l’utilisateur devra intervenir en cliquant sur un bouton. Cela peut vite devenir désagréable et rendre l’application indigeste. Il est important de trouver un équilibre entre l’information à fournir et le nombre de boîtes de dialogue affichées.
Pour finir, la fonction MsgBox peut être combinée avec d’autres fonctions et instructions VBA pour créer des messages plus avancés et interactifs. Par exemple, on peut utiliser la fonction InputBox pour demander à l’utilisateur de saisir une valeur et l’utiliser dans le message de la boîte de dialogue. La fonction InputBox fera l’objet d’un autre article.
En espérant que cet article vous soit utile, n’hésitez pas à laisser un commentaire,
A bientôt,
Benjamin