Vidéo: Les boîtes de dialogue en VBA Excel pour interagir 2025
La flexibilité de l'argument des boutons VBA facilite la personnalisation de vos boîtes de message Excel. Vous pouvez choisir les boutons à afficher, déterminer si une icône apparaît et décider quel bouton est le bouton par défaut (le bouton par défaut est "cliqué" si l'utilisateur appuie sur Entrée).
Vous pouvez utiliser des constantes intégrées pour l'argument buttons. Si vous préférez, vous pouvez utiliser la valeur plutôt qu'une constante (mais en utilisant les constantes intégrées est beaucoup plus facile).
Pour utiliser plusieurs de ces constantes en tant qu'argument, connectez-les simplement avec un opérateur +. Par exemple, pour afficher une boîte de message avec des boutons Oui et Non et une icône d'exclamation, utilisez l'expression suivante comme second argument MsgBox:
vbYesNo + vbExclamation
Ou, si vous préférez rendre votre code moins compréhensible, utilisez une valeur de 52 (c'est-à-dire 4 + 48).
L'exemple suivant utilise une combinaison de constantes pour afficher une boîte de message avec un bouton Oui et un bouton Non (vbYesNo) ainsi qu'une icône de point d'interrogation (vbQuestion). La constante vbDefaultButton2 désigne le second bouton (No) comme bouton par défaut, c'est-à-dire le bouton sur lequel l'utilisateur clique si l'utilisateur appuie sur Entrée. Par souci de simplicité, ces constantes sont assignées à la variable Config, puis utilisent Config comme second argument dans la fonction MsgBox:
Sub GetAnswer3 () Dim Config As Long Dim Ans As Integer Config = vbYesNo + vbQuestion + vbDefaultButton2 Ans = MsgBox ("Traiter le rapport mensuel?", Config) Si Ans = vbYes Alors RunReport End Sub
Extraire la boîte de message Excel s'affiche lorsque vous exécutez la procédure GetAnswer3. Si l'utilisateur clique sur le bouton Oui, la routine exécute la procédure RunReport. Si l'utilisateur clique sur le bouton Non (ou appuie sur Entrée), la routine se termine sans action. Parce que l'argument de titre a été omis dans la fonction MsgBox, Excel utilise le titre par défaut, Microsoft Excel.
La routine suivante fournit un autre exemple d'utilisation de la fonction MsgBox:
Sub GetAnswer4 () Dim Msg As String, Titre As String Dim Config Entier, Ans As Entier Msg = "Voulez-vous traiter le rapport mensuel? "Msg = Msg & vbNewLine & vbNewLine Msg = Msg &" Le traitement du rapport mensuel "Msg = Msg &" prend environ 15 minutes. Il "Msg = Msg &" générera un rapport de 30 pages pour "Msg = Msg &" tous les bureaux de vente pour le mois "Msg = Msg &" en cours. "Title =" XYZ Marketing Company "Config = vbYesNo + vbQuestion Ans = MsgBox (Msg, Config, Titre) Si Ans = vbYes Then RunReport End Sub
Cet exemple montre un moyen efficace de spécifier un message plus long dans une boîte de message.Une variable (Msg) et l'opérateur de concaténation (&) sont utilisés pour générer le message dans une série d'instructions. La constante vbNewLine insère un caractère de saut de ligne qui commence une nouvelle ligne (utilisez-le deux fois pour insérer une ligne vide). L'argument title est utilisé pour afficher un titre différent dans la boîte de message. Voici la boîte de message Excel s'affiche lorsque vous exécutez cette procédure.
Vous pouvez utiliser des constantes (telles que vbYes et vbNo) pour la valeur de retour d'une fonction MsgBox. Voici quelques autres constantes.
Constante | Valeur | Signification |
---|---|---|
vbOK | 1 | L'utilisateur a cliqué sur OK. |
vbAnnuler | 2 | L'utilisateur a cliqué sur Annuler. |
vbAbort | 3 | L'utilisateur a cliqué sur Abandonner. |
vbRetry | 4 | L'utilisateur a cliqué sur Réessayer. |
vbIgnore | 5 | L'utilisateur a cliqué sur Ignorer. |
vbOui | 6 | L'utilisateur a cliqué sur Oui. |
vbNo | 7 | L'utilisateur a cliqué sur Non. |
Et c'est à peu près tout ce que vous devez savoir sur la fonction MsgBox. Utilisez les boîtes de message avec prudence, cependant. Il n'y a généralement aucune raison d'afficher des boîtes de message qui ne servent à rien. Par exemple, les gens ont tendance à s'énerver quand ils voient une boîte de message tous les jours qui se lit Bonjour. Merci d'avoir chargé le classeur Budget Projection.
