vbCancel

  • Thread starter Thread starter Jose
  • Start date Start date
J

Jose

Hello,

I am using an input box and would like to exit the sub if
the user clicks cancel.

Thanks
 
You can't trap the button as you can with MsgBox, but you can trap for
nothing in put (which Cancel does, even if data typed in)

ans = InputBox("Input a value")
If ans = "" Then Exit Sub


--

HTH

Bob Phillips
... looking out across Poole Harbour to the Purbecks
(remove nothere from the email address if mailing direct)
 
Hey Jose, just do this:
If ans = Cancel Then
finish
End If

Hope it works
Jorge
 
Sorry forgot the other part, finish is the name of the sub
sub finish ()
end
end sub
 
Hi Jose,

If you use the Excel inputbox, you can trap the cancel.
For example:

Sub DemoInputbox()
Dim res As Variant

res = Application.InputBox("What is your name?")
If res = False Then
MsgBox "You cancelled!"
Exit Sub
ElseIf res = "" Then
MsgBox "You failed make an entry!"
Else
MsgBox "You entered " & res
End If

End Sub
 
Jose,

Try something like

Dim S As String
S = InputBox("Enter something")
If StrPtr(S) = 0 Then
Exit Sub
End If


--
Cordially,
Chip Pearson
Microsoft MVP - Excel
Pearson Software Consulting, LLC
www.cpearson.com
 
I"m looking for answer to same question except my input returns an integer answer so when I try to use this (or the other suggestions to this post) I get a type mismatch errro.
Any help is always appreciated
 
An inputbox (as opposed to a message box) returns value "" if Cancel is
pressed. So the code below should work with an inputbox

Sub InputTest()
Dim Answer As String
Answer = InputBox("Enter value")
If Answer = "" Then
MsgBox ("Cancel pressed")
Exit Sub
Else
MsgBox ("Value entered: " & Answer)
End If
End Sub

For a messagebox the vbCancel does work:
if msgbox("Hi there",vbOKCancel) = vbCancel then msgbox("Cancel pressed")


jeffP said:
I"m looking for answer to same question except my input returns an integer
answer so when I try to use this (or the other suggestions to this post) I
get a type mismatch errro.
 
Hi JeffP
In addition to Binzelli's answer:
also consider using Application.InputBox which restricts the type of input
expected:
MyNumber = Application.InputBox("Give a number please", "Number ?", , , , ,
, 1) '1 = Number see help for other types
If MyNumber <> False Then
MsgBox "The number is " & MyNumber
Else: MsgBox "Cancelled was pressed", vbInformation
End If

HTH
Cordially
Pascal

jeffP said:
I"m looking for answer to same question except my input returns an integer
answer so when I try to use this (or the other suggestions to this post) I
get a type mismatch errro.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Back
Top