Je ne trouve pas de solution à ma question, à part peut être essayer la création d'un userform.
Manifestement, la Msgbox ne permet que VbYes, ou VbNo.
J'aimerais, dans un code existant, pouvoir ajouter une Msgbox à laquelle on répondrait par 1 ou 2 par exemple (ou "Rouge ou vert"). La réponse irait vers un If :
avec un UserForm, ça marche sans problème, tout dépendra du nombre de choix possible, s'il n'y en a que 2 ça sera trés simple.
TextBox + Bouton de commande
Code:
Private Sub CommandButton1_Click()
If TextBox1 = 1 Then GoTo suite1
If TextBox1 = 2 Then GoTo Suite2
If TextBox1 > 2 Unload UserForm
Suite1:
Suite2:
End Sub
J'avais déjà fait cela avec ta proposition 13Gibe, mais ce n'est pas convaincant, uniquement dans la sémantique, question de forme quoi.
Car ma question est :"Choisissez vous le chemin 1 ou le chemin 2 ?"
La réponse par oui ou non n'est pas logique, même si le msgbox permet de résoudre le problème.
J'essaierai la proposition de David. Il me faut créer un userform et l'appeler. Je vais voir ça.
un autre exemple que pourra ajouter dans sa sélection
Si tu veux éviter un sacré mal de crâne, tu peux biaiser pour imposer un des 2 cas : une question en titre, la demande de confirmation pour la première option dans le corps
Code:
Sub X()
If MsgBox("veux- tu passer par ici ?", 36, "2 choix : par ici ou par là") = 6 Then
MsgBox "On passe par ici !", 64, "Je t'écoute"
Else
MsgBox "je te fais passer par là !", 64, "Tant pis..."
End If
End Sub
Cela peut se compliquer avec 3 options.
On passera au choix par un contrôle InputBox, un contrôle Listbox dans un formulaire …
Sub JeuClic()
If MsgBox("Tu veux jouer avec moi?", vbYesNo, "Joue avec moi !") = vbYes Then
ActiveSheet.Range("B5").Select
Range("B5").Value = "Super! Je suis content !!"
MsgBox "C'est vraiment sympa !"
Else
ActiveSheet.Range("B7").Select
Range("B7").Value = "Tant pis. Je rentre chez moi! "
MsgBox "Qu'elle journée !!"
If MsgBox("Faut pas lui en vouloir !", , "Joue avec moi!") = vbOK Then
ActiveSheet.Range("B7").Select
Range("B7").Value = "Dommage! On aurais pu s'amuser."
End If
End If
End Sub
Début de macro....
UserForm5.Show
If UserForm5.CommandButton1 = True Then
MsgBox ("ouais !")
End If
Suite de la macro....
Le code s'exécute bien, le Userform apparaît, mais ça bloque ensuite. Je peux bien exécuter du code à partir du commandButton, mais je ne sais pas comment revenir dans mon module (feuille)
J'ai lu sur le net qu'un CommandButton ne pouvait prendre qu'une valeur False. Donc aucune chance que ça marche.
J'ai simplement besoin d'un click. Comme une msgbox, mais a a l'air impossible...
Il ne faut pas mettre de parenthèses si tu met seulement MsgBox
MsgBox "T'as bus ou quoi???", vbYesNo, "Calvus"
C'est lorsque tu as la variable " reponse "
reponse = MsgBox("T'as bus ou quoi???", vbYesNo, "Calvus")
Ensuite
If reponse = vbYes Then la suite du code
EDIT: si le bouton est sur la feuille ce n'est pas UserForm qu'il faut mettre.