Home |
Search |
Today's Posts |
#1
Posted to microsoft.public.excel.programming
|
|||
|
|||
inputbox
Hi Im using
Dim appliances as integer appsagain: appliances = InputBox(Prompt:="Appliances.", _ Title:="Sheet" & a, Default:="0") If appliances < 0 Then MsgBox ("Number to small") GoTo appsagain ElseIf appliances 40 Then MsgBox ("Number 40") GoTo appsagain End If What I want to do is if text is used in the input box then restart. At the momment if text is enetered then the code crashes. Any ideas. Regards Robert |
#2
Posted to microsoft.public.excel.programming
|
|||
|
|||
inputbox
Change appliances to a string, the input box returns the string, then test
by taking the Val(appliances)........ see below Dim appliances As String appsagain: appliances = InputBox(Prompt:="Appliances.", _ Title:="Sheet" & a, Default:="0") If Val(appliances) < 0 Then MsgBox ("Number to small") GoTo appsagain ElseIf Val(appliances) 40 Then MsgBox ("Number 40") GoTo appsagain End If -- Regards, Nigel "RobcPettit" wrote in message ... Hi Im using Dim appliances as integer appsagain: appliances = InputBox(Prompt:="Appliances.", _ Title:="Sheet" & a, Default:="0") If appliances < 0 Then MsgBox ("Number to small") GoTo appsagain ElseIf appliances 40 Then MsgBox ("Number 40") GoTo appsagain End If What I want to do is if text is used in the input box then restart. At the momment if text is enetered then the code crashes. Any ideas. Regards Robert |
#3
Posted to microsoft.public.excel.programming
|
|||
|
|||
inputbox
You can trap it within the inputbox itself. And you need to allow an escape
door. As you are testing for <0, not <=0, I assume 0 is a valid value, so Dim appliances As Variant Dim AllDone As Boolean Do appliances = Application.InputBox( _ Prompt:="Appliances.", _ Title:="Sheet" & a, Default:="0", _ Type:=1) If appliances = False Then 'cancel our AllDone = True ElseIf appliances < 0 Then MsgBox "Number to small" ElseIf appliances 40 Then MsgBox "Number 40" Else AllDone = True End If Loop Until AllDone -- __________________________________ HTH Bob "RobcPettit" wrote in message ... Hi Im using Dim appliances as integer appsagain: appliances = InputBox(Prompt:="Appliances.", _ Title:="Sheet" & a, Default:="0") If appliances < 0 Then MsgBox ("Number to small") GoTo appsagain ElseIf appliances 40 Then MsgBox ("Number 40") GoTo appsagain End If What I want to do is if text is used in the input box then restart. At the momment if text is enetered then the code crashes. Any ideas. Regards Robert |
#4
Posted to microsoft.public.excel.programming
|
|||
|
|||
inputbox
You will do yourself the biggest favor programming-wise if you learn **not**
to rely on the GoTo statement for your program execution. Give this a try... Do Appliances = InputBox(Prompt:="Appliances.", _ Title:="Sheet" & A, Default:=0) If Appliances Like String(Len(Appliances), "#") Then If Appliances = "" Then Appliances = 0 Exit Do ElseIf Appliances < 0 Then MsgBox "Negative numbers are not allowed!" ElseIf Appliances 40 Then MsgBox "Only numbers between 0 and 40 are allowed!" Else Exit Do End If Else MsgBox "Your input was not an integer!" End If Loop Note: If the user clicks Cancel, Appliances will be assigned the value 0. Rick "RobcPettit" wrote in message ... Hi Im using Dim appliances as integer appsagain: appliances = InputBox(Prompt:="Appliances.", _ Title:="Sheet" & a, Default:="0") If appliances < 0 Then MsgBox ("Number to small") GoTo appsagain ElseIf appliances 40 Then MsgBox ("Number 40") GoTo appsagain End If What I want to do is if text is used in the input box then restart. At the momment if text is enetered then the code crashes. Any ideas. Regards Robert |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Forum | |||
InputBox | Excel Discussion (Misc queries) | |||
InputBox | Excel Discussion (Misc queries) | |||
inputbox | Excel Discussion (Misc queries) | |||
Inputbox and Application.InputBox | Excel Programming | |||
Inputbox | Excel Programming |