IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Connaitre le bouton sélectionné dans MsgBoxEx


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Femme Profil pro
    Ingenieur process
    Inscrit en
    Août 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Ingenieur process
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2012
    Messages : 6
    Par défaut Connaitre le bouton sélectionné dans MsgBoxEx
    Bonjour à tous,

    j'utilise depuis peu la très utile fenêtre de message étendue (MsgBoxEx), que j'ai trouvé sur le site :
    ici
    C'est très pratique, je m'en sers pour afficher principalement des messages d'aide en 2 langues. Maintenant j'aimerais aussi m'en servir comme une MsgBox standard et résuperer la valeur du bouton sur lequel a cliqué l'utilisateur.
    J'ai bien trouvé ce sujet dans le forum, mais la réponse était: "utilise les Userform", ce que je voudrais éviter.

    Est-ce que quelqu'un aurait une petite idée?
    Par avance merci,
    Estelle

  2. #2
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Bonjour, bonjour,

    comme indiqué dans la documentation, cette fonction est similaire au MsgBox standard …

    Elle renvoie donc le bouton cliqué via une valeur numérique de type Integer, rien qu'en lisant le code aussi !

    __________________________________________________________________________________________

    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion …

  3. #3
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    La boite MsgBox standard retourne la valeur du bouton cliqué qu'il est possible d'utiliser de cette façon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    If MsgBox("Quel bouton est cliqué !", vbAbortRetryIgnore) = vbIgnore Then
     
        MsgBox "Le bouton 'ignorer' à été cliqué !"
     
    End If
    Cette valeur est passée à la boite de message étendue donc il suffit de procéder de la même façon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    Sub Test()
     
        Dim ltexte As String
     
        ltexte = "{\rtf1\ansi\ansicpg1252\deff0\deflang1036{\fonttbl{\f0\fswiss\fcharset0 Arial;}}" & vbCrLf & _
                 "{\*\generator Msftedit 5.41.15.1515;}\viewkind4\uc1\pard\f0\fs20 " & vbCrLf & _
                 "Ceci est un texte \ul format\'e9\ulnone  \'e9crit \b dans Worpad.\par" & vbCrLf & _
                 "Utilisez par exemple NotePad pour visualisez le texte RTF.\par" & vbCrLf & _
                 "\b0\par" & vbCrLf & _
                 "}"
        If MsgBoxEx(ltexte, vbQuestion Or vbAbortRetryIgnore Or vbDefaultButton3, "Test MsgBoxEx", , , _
                      RGB(250, 250, 240), , 20, " ([Time] sec)", True) = vbIgnore Then
     
            MsgBox "Le bouton 'ignorer' à été cliqué !"
     
        End If
     
    End Sub
    ou alors avec un SelectCase :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    Sub Test()
     
        Dim ltexte As String
        Dim Retour As Long
     
        ltexte = "{\rtf1\ansi\ansicpg1252\deff0\deflang1036{\fonttbl{\f0\fswiss\fcharset0 Arial;}}" & vbCrLf & _
                 "{\*\generator Msftedit 5.41.15.1515;}\viewkind4\uc1\pard\f0\fs20 " & vbCrLf & _
                 "Ceci est un texte \ul format\'e9\ulnone  \'e9crit \b dans Worpad.\par" & vbCrLf & _
                 "Utilisez par exemple NotePad pour visualisez le texte RTF.\par" & vbCrLf & _
                 "\b0\par" & vbCrLf & _
                 "}"
        Retour = MsgBoxEx(ltexte, vbQuestion Or vbAbortRetryIgnore Or vbDefaultButton3, "Test MsgBoxEx", , , _
                      RGB(250, 250, 240), , 20, " ([Time] sec)", True)
     
        Select Case Retour
     
            Case vbIgnore
     
                MsgBox "Ignorer !"
     
            Case vbCancel
     
                MsgBox "Annuler !"
     
            Case vbRetry
     
                MsgBox "Recommancer !"
     
            Case vbAbort
     
                MsgBox "Abandonner !"
     
            'etc...
        End Select
     
    End Sub
    Hervé.

  4. #4
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Oups, désolé Marc, pas rafraîchi !

  5. #5
    Membre régulier
    Femme Profil pro
    Ingenieur process
    Inscrit en
    Août 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Ingenieur process
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2012
    Messages : 6
    Par défaut
    Merci à tous les 2,

    effectivement c'etait "tout bête", j'avais une autre erreur dans la syntax de la MsgBoxEx du coups je croyais que c'etait le select case qui ne fonctionnait pas.

    Bref, je ferais plus attention la prochaine fois avant de poser une question.

    En tout cas merci d'avoir pris le tremps de regarder.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 18/08/2011, 21h46
  2. Connaître le bouton sélectionné dans un groupe
    Par esigwald dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 22/04/2011, 09h54
  3. Connaitre la ligne sélectionnée dans un uitable
    Par steve-movi dans le forum Interfaces Graphiques
    Réponses: 2
    Dernier message: 14/05/2009, 09h01
  4. Réponses: 4
    Dernier message: 12/06/2006, 10h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo