vbCancel

J

Jose

Hello,

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

Thanks
 
B

Bob Phillips

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)
 
G

George

Sorry forgot the other part, finish is the name of the sub
sub finish ()
end
end sub
 
N

Norman Jones

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
 
C

Chip Pearson

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
 
J

jeffP

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
 
B

Binzelli

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.
 
P

papou

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.
 
Top