J'ai un champ de saisie demandant à l'utilisateur d'entrer une date. Comment faire savoir au programme qu'il doit s'arrêter si l'utilisateur clique sur Annuler ou ferme la boîte de dialogue de saisie au lieu d'appuyer sur ok.
Quelque chose comme if str=vbCancel then exit sub
Actuellement, l'utilisateur peut appuyer sur OK ou sur Annuler, mais le programme est toujours exécuté.
str = InputBox(Prompt:="Enter Date MM/DD/YYY", _ Title:="Date Confirmation", Default:=Date)
Si l'utilisateur clique sur Annuler, une chaîne de longueur nulle est renvoyée. Vous ne pouvez pas différencier cela de la saisie d'une chaîne vide. Vous pouvez toutefois créer votre propre classe InputBox personnalisée ...
[~ # ~] éditez [~ # ~] pour différencier correctement la chaîne vide et annuler, conformément à cette réponse .
Votre exemple
Private Sub test()
Dim result As String
result = InputBox("Enter Date MM/DD/YYY", "Date Confirmation", Now)
If StrPtr(result) = 0 Then
MsgBox ("User canceled!")
ElseIf value = vbNullString Then
MsgBox ("User didn't enter anything!")
Else
MsgBox ("User entered " & result)
End If
End Sub
Indique à l'utilisateur qu'il a annulé la suppression de la chaîne par défaut ou qu'il clique sur Annuler.
Voir http://msdn.Microsoft.com/en-us/library/6z0ak68w (v = vs.90) .aspx