VBA Msgbox : Comment personnaliser ses boutons ?
Modèles prêt à l'emploi, Projets Excel-VBA complets
Les fonctions Msgbox VBA s’avèrent très utiles et sont rapides à mettre place pour permettre aux utilisateurs d’interagir avec votre code. Cependant l’impossibilité de modifier le libellé de vos boutons peut être bloquant voir lassant pour vos utilisateurs qui utilisent toujours les mêmes 7 boutons :
Comparaison entre les Msgbox VBA standards et les Msgbox VBA avec boutons personnalisés
Afin de personnaliser les boutons des Msgbox, nous devons commencer par ajouter le module “VBA_Msgbox_personnalisé” dans notre code (vous trouverez l’intégralité du code plus bas dans l’article)
A noter cette méthode pour personnaliser ses boutons des Msgbox VBA fonctionne sur MS Excel – Access – Word
VBA Msgbox Standard
Sub Msgbox_Question_Par_Defaut() If MsgBox("Comment allez vous aujourd'hui ? ", vbYesNo + vbQuestion, "Numamax") = vbYes Then ' Si la réponse à notre questio est : oui MsgBox "Super !" 'Alors répondre ça Else MsgBox "Mince" 'Sinon répondre ceci End If End Sub
- +vbCritical
- +vbQuestion
- +vbExclamation
- +vbInformation
VBA Msgbox avec personnalisation des boutons
Sub Msgbox_Question_Personnalisé() '##Personalisation du Msgbox (pas plus de 10 caractères)######################## MsgBoxCustom_Set vbYes, "Bien" 'On échange le "oui" par défaut par "bien" MsgBoxCustom_Set vbNo, "Pas bien" 'On échange le "non" par défaut par "Pas bien" '############################################################################### MsgBoxCustom ans, "Comment allez vous aujourd'hui ? ", vbYesNo + vbQuestion, "Numamax" If ans = vbYes Then ' Si la réponse à notre questio est : oui MsgBox "Super !" 'Alors répondre ça Else MsgBox "Mince" 'Sinon répondre ceci End If End Sub
Explication de l'utilisation du module de personnalisation de boutons
En prenant cette fois-ci, l’exemple demandé du Msgbox VBA à 3 boutons personnalisés, étudions pas-à-pas le fonctionnement du code :
Le module que nous avons ajouté nous permet dans un premier temps de modifier le libellé des boutons par défaut : “Oui/Non/Annuler” via l’utilisation de “MsgBoxCustom_Set“. C’est ici que vous pourrez très facilement paramétrer le libellé de vos boutons à votre guise.
Puis le code appel une fonction Msgbox VBA de type “vbYesNoCancel” mais modifiée. Ainsi les champs “Oui/Non/Annuler” porteront les noms que vous leur avez donnés.
Sub Msgbox_3_Choix_Personnalisés() '##Personalisation du Msgbox (pas plus de 10 caractères)######################## MsgBoxCustom_Set vbYes, "Choix n°1" 'On échange le "oui" par défaut par "bien" MsgBoxCustom_Set vbNo, "Choix n°2" 'On échange le "non" par défaut par "Pas bien" MsgBoxCustom_Set vbCancel, "Choix n°3" 'On échange le "non" par défaut par "Pas bien" '############################################################################### MsgBoxCustom ans, "Vous devez faire un choix : ", vbYesNoCancel + vbExclamation, "Numamax" If ans = vbYes Then MsgBox "Merci d'avoir choisi le choix n°1" End If If ans = vbNo Then MsgBox "Merci d'avoir choisi le choix n°2" End If If ans = vbCancel Then MsgBox "Merci d'avoir choisi le choix n°3" End If End Sub
Enfin, ce qui change également : la valeur retournée en réponse à votre Msgbox personnalisé se trouve stockée dans la variable “ans“. L’exemple accolé vous montre que l’utilisation de la valeur retournée est la même qu’avec la fonction Msgbox VBA standard :
L’utilisateur a cliqué sur le bouton “Choix n°1” qui est le libellé du bouton par défaut “OUI” qui retourne la valeur vbYes.
Le fichier d'exemple en téléchargement, incluant l'intégralité du module de personnalisation des boutons des Msgbox VBA + les exemples détaillés dans l'article
- La largeur des boutons n’est pas modifiable, c’est pourquoi nous vous conseillons de ne pas dépasser des libellés de boutons de plus de 10 caractères.
- Dans cette méthode, nous n’utilisons à aucun moment le bouton “Aide” des Msgbox VBA car ce dernier n’est utilisable qu’avec un fichier de type “Windows Help file”.