2017-08-21 5 views
-1

est-il possible d'ajouter un bouton de commande dans la fenêtre de msgbox dans vba? Par exemple, je veux ajouter un bouton d'annulation qui arrête le code plutôt que de le poursuivre. Je pourrais créer une nouvelle userform, mais ce serait bien si j'économisais de l'espace et utilisais le msgbox qui est déjà là.Bouton de commande dans msgbox vba possible?

+0

Avez-vous pas pris la peine * * regarder ce que IntelliSense vous dit que vous tapez 'MsgBox ('? –

Répondre

3

VBA a plusieurs différents types de MessageBoxes avec construit dans les boutons de commande pour ce but. Le type de boutons inclus dans la boîte de message est déclaré comme second paramètre - MsgBox (invite, Boutons comme)

Les types que vous êtes probablement intéressé sont:

  • vbYesNo
  • vbYesNoCancel
  • vbAbortRetryIgnore
  • vbOKCancel
  • vbRetryCancel

Ces boutons renvoient des valeurs entières qui doivent être stockées ou utilisées à des fins de comparaison.

VBA a ces réponses entières stockées en tant que constantes (par exemple vbOK = 1, VbCancel = 2, etc.) Voir Microsoft Developer Network MsgBox Function pour plus de détails à ce sujet.

Sub mySub() 

Dim answer as Integer 

answer = MsgBox("Would you like to choose yes?", vbYesNoCancel) 

If answer = vbYes Then 
    'Do whatever you want 
ElseIf answer = vbNo Then 
    'Do whatever 
Else 
    Exit Sub 
End If 

End Sub 
+0

Merci beaucoup. Votre réponse a été très utile !! –

+0

Grand , si cela a fonctionné pour vous, n'hésitez pas à marquer la question comme la réponse en cliquant sur la coche en dessous des flèches sur la gauche. – BobtimusPrime

0

Essayez ceci:

If MsgBox("Cancel or Continue, are you sure?", vbOKCancel) = vbOK Then 
    'continue whatever you want to do. 
End if 
+0

semble wok bien aussi. Thankss –