Cancel InputBox

A

Alfredo_CPA

Hi,

Does anybody knows how to instruct VBA to diferentiate between a Cancel in
the InputBox and a cero entered in the impiut box? (excel 2003)
I have this code:
ElseIf myerrorvalue = False Then Exit Sub '(errorvalue is the result of the
inputbox)

VBA is taking a 0 (cero) value as False (just like if the user click the
cancel button) and exits the sub, but I need the code to keep going

Thanks
 
A

Alfredo_CPA

Per,

When I hit cancel the code runs wrong. Here is the whole code:


Sub IfIserrorNew()
If IsEmpty(ActiveCell) Then
MsgBox " You Are In an Empty Cell ! Please select the cell with
the error value", 16, "My Friend"
Else
MyAns = MsgBox("Do you want to replace formula with ISERROR?",
vbYesNo + vbQuestion, "HIDE ERRORS??")
If MyAns = vbNo Then Exit Sub
myerrorvalue = Application.InputBox("Enter the value you want to
see instead of the error." , "Pick Option", Type:=2)
MyOriginalFormula = ActiveCell.Formula
MyOriginalFormula = Right(MyOriginalFormula,
Len(MyOriginalFormula) - 1)
If myerrorvalue = "" Then
MsgBox "Nothing entered, or Cancel"
ElseIf IsNumeric(myerrorvalue) Then
ActiveCell.Formula = "=IF(ISERROR(" & MyOriginalFormula
& ")," & myerrorvalue & ",(" & MyOriginalFormula & "))"
Else
ActiveCell.Formula = "=IF(ISERROR(" & MyOriginalFormula &
"),""" & myerrorvalue & """,(" & MyOriginalFormula & "))"
End If
End If
 
S

smartin

Alfredo_CPA said:
Hi,

Does anybody knows how to instruct VBA to diferentiate between a Cancel in
the InputBox and a cero entered in the impiut box? (excel 2003)
I have this code:
ElseIf myerrorvalue = False Then Exit Sub '(errorvalue is the result of the
inputbox)

VBA is taking a 0 (cero) value as False (just like if the user click the
cancel button) and exits the sub, but I need the code to keep going

Thanks

This code demonstrates how the input value is interpreted:

Sub IPBOX()
Dim a As Variant
a = InputBox("prompt")
If a = "" Then
Debug.Print "canceled or empty input"
Else
Debug.Print Val(a)
End If
End Sub
 
J

Jacob Skaria

Replace
If MyAns = vbNo Then Exit Sub

with

If MyAns <> vbYes Then Exit Sub


If this post helps click Yes
 
P

Per Jessen

Hi

I suggest you use the InputBox Function rather than InputBox Method, as the
last will result in a zero if user press cancel.

MyErrorValue = _
InputBox("Enter the value you want to see instead of the error.", "Pick
Option")

Best regards,
Per
 
R

Rick Rothstein

If you use the VB InputBox (note... it does *not* provide a Type argument...
all return values are Text), you can detect when the Cancel button has been
pressed. Give this a try to see how to distinguish between the various
options...

Sub Test()
Dim Response As String
Response = InputBox("Enter something:")
If StrPtr(Response) = 0 Then
MsgBox "You pressed the Cancel button!"
ElseIf Len(Response) = 0 Then
MsgBox "You pressed the Enter button without entering anything!"
Else
MsgBox "You entered this: " & Response
End If
End Sub
 
A

Alfredo_CPA

It doesn't work with cancel. Thanks anyway

Jacob Skaria said:
Replace
If MyAns = vbNo Then Exit Sub

with

If MyAns <> vbYes Then Exit Sub


If this post helps click Yes
 
A

Alfredo_CPA

Thanks Per (and all the others) using the the InputBox Function rather than
InputBox Method solved my problem
 

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

Top