Restrict Input of InputBox to numeric values between 1 and 10

A

AndreasHermle

Dear Experts:

below code snippet lets user change the font size of a chart's data
labels by means of an Input Box.

I would like the inputbox part of the macro expanded in the following
way:

.... only numeric values between 1 and 10 are allowed (ie. Font size of
the data labels)
.... If above condition is not met the inputbox dialog is to re-appear.
In the current state the macro exits on non-numeric values.

Help is much appreciated. Thank you very much in advance.

Regards, Andreas



DefineFontSize = InputBox("Specifiy the new Font Size of the Data
Labels!")
If Not IsNumeric(DefineFontSize) Then
MsgBox ("Only numeric values are allowed!")
Exit Sub
End If
If DefineFontSize = "" Then
Exit Sub
End If
 
I

isabelle

hi,

Code:
Sub Macro1()
'expression.InputBox(Prompt, Title, Default, Left, Top, HelpFile, HelpContextId, Type)
Dim MyTitle As String, MyMessage As String, DefineFontSize As Integer
MyTile = "Specifiy the new Font Size of the DataLabels! "
MyMessage = "Enter number between 1 and 10"
repeat:
DefineFontSize = Int(Application.InputBox(Prompt:=MyMessage, Title:=MyTile, Default:=1, Type:=1))
If DefineFontSize <= 0 Or DefineFontSize > 9 Then
MsgBox "You must enter number between 1 and 10, or cancel !"
GoTo repeat
End If
End Sub
 
S

scattered

Dear Experts:

below code snippet lets user change the font size of a chart's data
labels by means of an Input Box.

I would like the inputbox part of the macro expanded in the following
way:

... only numeric values between 1 and 10 are allowed (ie. Font size of
the data labels)
... If above condition is not met the inputbox dialog is to re-appear.
In the current state the macro exits on non-numeric values.

Help is much appreciated. Thank you very much in advance.

Regards, Andreas

DefineFontSize = InputBox("Specifiy the new Font Size of the Data
Labels!")
If Not IsNumeric(DefineFontSize) Then
MsgBox ("Only numeric values are allowed!")
Exit Sub
End If
If DefineFontSize = "" Then
Exit Sub
End If

How about this (with type declarations included - a good practice):

Sub Test()
Dim answer As String
Dim DefineFontSize As Double

answer = InputBox("Specifiy the new Font Size of the Data Labels!")
If Not IsNumeric(answer) Then
MsgBox ("Only numeric values are allowed!")
Exit Sub
End If
DefineFontSize = answer
Do While DefineFontSize < 1 Or DefineFontSize > 10
MsgBox "Font size should be in range 1 to 10"
answer = InputBox("Specifiy the new Font Size of the Data
Labels!")
If Not IsNumeric(answer) Then
MsgBox ("Only numeric values are allowed!")
Exit Sub
End If
DefineFontSize = answer
Loop
MsgBox DefineFontSize
End Sub
 
A

AndreasHermle

hi,

Code:
Sub Macro1()
'expression.InputBox(Prompt, Title, Default, Left, Top, HelpFile, HelpContextId, Type)
Dim MyTitle As String, MyMessage As String, DefineFontSize As Integer
MyTile = "Specifiy the new Font Size of the DataLabels! "
MyMessage = "Enter number between 1 and 10"
repeat:
DefineFontSize = Int(Application.InputBox(Prompt:=MyMessage, Title:=MyTile, Default:=1, Type:=1))
If DefineFontSize <= 0 Or DefineFontSize > 9 Then
    MsgBox "You must enter number between 1 and 10, or cancel !"
    GoTo repeat
End If
End Sub

--
isabelle

Le 2011-04-20 12:31, AndreasHermle a écrit :






Dear Experts:
below code snippet lets user change the font size of a chart's data
labels by means of an Input Box.
I would like the inputbox part of the macro expanded in the following
way:
... only numeric values between 1 and 10 are allowed (ie. Font size of
the data labels)
... If above condition is not met the inputbox dialog is to re-appear.
In the current state the macro exits on non-numeric values.
Help is much appreciated. Thank you very much in advance.
Regards, Andreas
DefineFontSize = InputBox("Specifiy the new Font Size of the Data
Labels!")
If Not IsNumeric(DefineFontSize) Then
MsgBox ("Only numeric values are allowed!")
Exit Sub
End If
If DefineFontSize = "" Then
Exit Sub
End If

Hi Isabelle,

great coding. Thank you very much for your kind and professional
help.

Regards, Andreas
 
A

AndreasHermle

How about this (with type declarations included - a good practice):

Sub Test()
Dim answer As String
Dim DefineFontSize As Double

answer = InputBox("Specifiy the new Font Size of the Data Labels!")
If Not IsNumeric(answer) Then
    MsgBox ("Only numeric values are allowed!")
    Exit Sub
End If
DefineFontSize = answer
Do While DefineFontSize < 1 Or DefineFontSize > 10
    MsgBox "Font size should be in range 1 to 10"
    answer = InputBox("Specifiy the new Font Size of the Data
Labels!")
    If Not IsNumeric(answer) Then
        MsgBox ("Only numeric values are allowed!")
        Exit Sub
    End If
    DefineFontSize = answer
Loop
MsgBox DefineFontSize
End Sub

Dear Scattered,

works like a charm. thank you very much for your professional help.

regards, Andreas
 

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