VBA - not working

A

ajliaks

Hi

I am trying the way you told me, but is not working right. I guess I a
missing something.

when I run it, I allways get the MsgBox "Value must be between 0.0
1.0", no mather the value.

Private Sub PercentTB_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim Min As Variant
Dim Max As Variant

PercentTB.Value = Format(CSng(PercentTB.Value), "##.#%")

Min = Format(CSng(0), "##.#%")
Max = Format(CSng(1), "##.#%")

If (PercentTB.Value < Min) Or (PercentTB.Value > Max) Then
MsgBox "Value must be between 0.0 - 1.0", vbOKOnly
Cancel = True
End If
End Su
 
B

Bob Phillips

You really should keep top one thread. To expect everyone to keep up with
your multiple postings is totally unreasonable.

What is your total code looking like now? What are you inputting and what do
you want?

--

HTH

Bob Phillips
... looking out across Poole Harbour to the Purbecks
(remove nothere from the email address if mailing direct)
 
T

Tom Ogilvy

You are going to have to decide what you want the user to enter in the cell.
What is acceptable

Which
..50
or
50
or
50%
or multiple

Then you have to test for what was entered and decide what you want to do
with it.

Whatever is in the textbox will be a string, so you don't want to compare a
string to a number. You will need to convert the string to a number and do
the comparison.

It appears you want the value entered to be between 0.0 and 1.0. If so, you
don't want to turn it into a percentage before you do the check.


Private Sub PercentTB_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim Min As Single
Dim Max As Single


Min = Format(CSng(0), "##.#%")
Max = Format(CSng(1), "##.#%")

If (csng(PercentTB.Value) < Min) Or (csng(PercentTB.Value) > Max) Then
MsgBox "Value must be between 0.0 - 1.0", vbOKOnly
Cancel = True
PercentTB.Value = ""
End If

PercentTB.Value = Format(CSng(PercentTB.Value), "##.#%")

End Sub
 
Top