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

Résolu
Code Jack Messages postés 18 Date d'inscription   Statut Membre Dernière intervention   -  
 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

pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
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
Yop73
 
Merci
0
Code Jack Messages postés 18 Date d'inscription   Statut Membre Dernière intervention   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
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
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
Code Jack Messages postés 18 Date d'inscription   Statut Membre Dernière intervention   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
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
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
Code Jack Messages postés 18 Date d'inscription   Statut Membre Dernière intervention   7
 
Ha bah voilà, mystère résolu ;) !

Code Jack
0