Utilisation de la fonction MsgBox, Excel VBA

Utilisation de la fonction MsgBox, Excel VBA

Voici un exemple détaillé d’utilisation de la fonction MsgBox en VBA Excel, accompagné d’une explication complète de chaque partie du code et de son fonctionnement. Cet exemple montre comment utiliser MsgBox dans différents scénarios, y compris la gestion des choix de boutons et la personnalisation de l’apparence.
Exemple de Code VBA pour MsgBox

Sub MsgBoxExample()
    ' Déclarer une variable pour stocker la réponse de l'utilisateur
    Dim response As VbMsgBoxResult
    ' Afficher une boîte de message simple
    MsgBox "Bonjour, bienvenue dans Excel VBA !", vbInformation, "Salutations"
    ' Afficher une boîte de message avec les boutons Oui et Non, et capturer le choix de l'utilisateur
    response = MsgBox("Voulez-vous continuer ?", vbYesNo + vbQuestion, "Confirmation")
    ' Vérifier si l'utilisateur a cliqué sur Oui ou Non
    If response = vbYes Then
        MsgBox "Vous avez choisi de continuer.", vbInformation, "Action effectuée"
    ElseIf response = vbNo Then
        MsgBox "Vous avez choisi de ne pas continuer.", vbInformation, "Action annulée"
    End If
    ' Afficher une boîte de message avec les boutons Oui, Non et Annuler, et capturer la réponse
    response = MsgBox("Êtes-vous sûr de vouloir supprimer le fichier ?", vbYesNoCancel + vbExclamation, "Confirmation de suppression")
    ' Évaluer la réponse de l'utilisateur
    Select Case response
        Case vbYes
            MsgBox "Le fichier sera supprimé.", vbInformation, "Supprimé"
        Case vbNo
            MsgBox "La suppression du fichier a été annulée.", vbInformation, "Annulée"
        Case vbCancel
            MsgBox "Action annulée.", vbInformation, "Annulée"
    End Select
    ' Afficher une boîte de message avec un délai d'attente (utilisation de Application.OnTime) après un certain temps
    ' La MsgBox sera automatiquement fermée après 5 secondes
    MsgBox "Ce message se fermera dans 5 secondes.", vbInformation, "Exemple de délai"
    Application.OnTime Now + TimeValue("00:00:05"), "CloseMsgBox"
End Sub
Sub CloseMsgBox()
    ' Cette sous-routine fermera la boîte de message en simulant une pression sur le bouton Entrée
    Application.SendKeys "{ENTER}"
End Sub

Explication du Code
1. Boîte de message simple (Information basique)
MsgBox "Bonjour, bienvenue dans Excel VBA !", vbInformation, "Salutations"

  • Message : « Bonjour, bienvenue dans Excel VBA ! » est le texte affiché dans la boîte de message.
  • Type : vbInformation est une constante prédéfinie qui spécifie le type de la boîte de message. Cela ajoute une icône « Information ».
  • Titre : « Salutations » est le titre de la boîte de message.

Cette ligne affiche simplement une boîte de message avec une icône d’information et un titre « Salutations ».
2. Boîte de message Oui/Non avec réponse de l’utilisateur
response = MsgBox("Voulez-vous continuer ?", vbYesNo + vbQuestion, "Confirmation")

  • Message : « Voulez-vous continuer ? » est le texte affiché dans la boîte de message.
  • Type : vbYesNo + vbQuestion indique que la boîte de message aura deux boutons (Oui et Non) et affichera une icône de question.
  • Titre : « Confirmation » est le titre de la boîte de message.

La réponse de l’utilisateur est stockée dans la variable response. Le code suivant vérifie si l’utilisateur a cliqué sur « Oui » ou « Non » et prend une action appropriée.

If response = vbYes Then
    MsgBox "Vous avez choisi de continuer.", vbInformation, "Action effectuée"
ElseIf response = vbNo Then
    MsgBox "Vous avez choisi de ne pas continuer.", vbInformation, "Action annulée"
End If
  • Si l’utilisateur clique sur « Oui », une boîte de message affiche « Vous avez choisi de continuer. »
  • Si l’utilisateur clique sur « Non », une autre boîte de message affiche « Vous avez choisi de ne pas continuer. »

3. Boîte de message Oui/Non/Annuler avec gestion de plusieurs choix
response = MsgBox("Êtes-vous sûr de vouloir supprimer le fichier ?", vbYesNoCancel + vbExclamation, "Confirmation de suppression")

  • Message : « Êtes-vous sûr de vouloir supprimer le fichier ? » demande à l’utilisateur une confirmation avant de supprimer un fichier.
  • Type : vbYesNoCancel + vbExclamation ajoute les boutons Oui, Non et Annuler, et une icône « Exclamation », indiquant une action importante ou risquée.
  • Titre : « Confirmation de suppression » fournit un titre à la boîte de message.

La réponse est ensuite vérifiée à l’aide d’une instruction Select Case pour évaluer l’action de l’utilisateur :

Select Case response
    Case vbYes
        MsgBox "Le fichier sera supprimé.", vbInformation, "Supprimé"
    Case vbNo
        MsgBox "La suppression du fichier a été annulée.", vbInformation, "Annulée"
    Case vbCancel
        MsgBox "Action annulée.", vbInformation, "Annulée"
End Select
  • Si l’utilisateur clique sur « Oui », le code confirme que le fichier sera supprimé.
  • Si l’utilisateur clique sur « Non », la suppression est annulée.
  • Si l’utilisateur clique sur « Annuler », l’action est également annulée.

4. Boîte de message avec délai (Fermeture automatique)

MsgBox "Ce message se fermera dans 5 secondes.", vbInformation, "Exemple de délai"
Application.OnTime Now + TimeValue("00:00:05"), "CloseMsgBox"
    • La boîte de message sera affichée pendant 5 secondes avec le message « Ce message se fermera dans 5 secondes. »
    • La méthode Application.OnTime est utilisée pour planifier une tâche qui se produira 5 secondes plus tard. Cette tâche appelle la sous-routine CloseMsgBox, qui simule la pression sur le bouton Entrée, fermant ainsi la boîte de message automatiquement.
Sub CloseMsgBox() 
     Application.SendKeys "{ENTER}" 
End Sub
  • La méthode SendKeys simule la pression de la touche Entrée, ce qui ferme la boîte de message.

Points Clés à Retenir :

  • Syntaxe de MsgBox : MsgBox(prompt, [buttons], [title])
  • prompt : Le message affiché dans la boîte.
  • buttons : Une combinaison de constantes qui spécifient les boutons et l’icône de la boîte de message.
  • title : Le texte affiché dans la barre de titre de la boîte de message.
  • Constantes de boutons :
  • vbYesNo : Affiche les boutons Oui et Non.
  • vbYesNoCancel : Affiche les boutons Oui, Non et Annuler.
  • vbInformation, vbExclamation, vbQuestion : Spécifie l’icône affichée dans la boîte de message.
  • Valeur de retour : MsgBox renvoie une valeur en fonction du bouton cliqué par l’utilisateur. Cette valeur peut être vérifiée avec vbYes, vbNo ou vbCancel.

Conclusion :
La fonction MsgBox en VBA est très utile pour afficher des messages simples, des confirmations, des avertissements ou des alertes d’information. Elle peut gérer différents choix de boutons et d’icônes, et vous pouvez capturer et traiter la réponse de l’utilisateur pour effectuer des actions dans votre code VBA.

Facebook
Twitter
LinkedIn
WhatsApp
Email
Print
0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x