VBA récupérer valeur renvoyée par MsgBox

Résolu
Code Jack Messages postés 18 Statut Membre -  
 Yop73 -
Bonjour à tous,

Je ne parviens pas à récupérer la valeur renvoyée par une MsgBox dans une variable myChoice. J'ai besoin de savoir si l'utilisateur souhaite quitter la procédure étape après étape...

Pourriez-vous m'aider ?

Merci d'avance,

Code Jack

2 réponses

  1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 772
     
    Bonjour,
    Tout dépends de votre MsgBox...
    Exemple avec une boite de Message "oui - non" :
    Sub test()
    Dim result As String, MyChoice As String
    
    result = MsgBox("Faites votre choix!", vbYesNo)
    If result = vbYes Then
        MyChoice = "Choix 1 : Oui"
    Else
        MyChoice = "Choix 2 : Non"
    End If
    MsgBox MyChoice
    End Sub
    10
    1. Yop73
       
      Merci
      0
  2. Code Jack Messages postés 18 Statut Membre 7
     
    C'est tout à fait le type de demande que j'ai à faire merci.

    Mais l'aide précise concernant MsgBox :

    "Valeurs renvoyées:

    Constante, Valeur, Description
    vbOK, 1, OK
    vbCancel, 2, Annuler
    vbAbort, 3, Abandonner
    vbRetry, 4, Réessayer
    vbIgnore, 5, Ignorer
    vbYes, 6, Oui
    vbNo, 7, Non"

    Je pensais donc qu'il fallait récupérer dans myChoice un integer...

    Mais sinon ça ne fait rien, je peux travailler avec votre proposition.

    Merci beaucoup,

    Code Jack
    0
    1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 772
       
      Vous pouvez, vous pouvez...
      C'était juste une proposition.
      Tenez, prenez ce test :
      Dim result As Integer
      result = MsgBox("cliquez", vbYesNoCancel)
      MsgBox result

      renvoie 6 quand clic sur "oui", 7 quand clic sur "non" et 2 quand clic sur "annuler"
      C'est vous qui voyez!!!
      -1
    2. Code Jack Messages postés 18 Statut Membre 7
       
      C'est intéressant ceci dit !

      Vous stockez deux choses différentes selon l'introduction de votre variable dans vos deux exemples.
      MsgBox semble renvoyer les deux string et integer, selon où on le stocke... Etrange

      Merci beaucoup néanmoins !

      Code Jack
      0
    3. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 772
       
      Ce que tu soulèves est encore plus intéressant pour moi car je ne me suis jamais posé la question et viens de m'apercevoir que ... j'avais tout faux!!!!
      MsgBox renvoie un Integer systématiquement... vbYes, par exemple, est une constante VBA égale à 6.
      L'erreur que je fais depuis le début est gérée automatiquement par VBA...
      Dim result As String alors qu'en fait result = 6 est traitée automatiquement (je l'ai lu quelque part mais ou...???).
      Sources : MsgBox
      0
    4. Code Jack Messages postés 18 Statut Membre 7
       
      Ha bah voilà, mystère résolu ;) !

      Code Jack
      0