VBA - using Goto - Please Help!

A

ajliaks

Hi,

I need to check data, and if it is wrong, go back to the text box, an
inpt data again.

I am trying something like this:

In comand button ok:

If (PercentTB.Value < 0) Or (PercentTB.Value > 100) Then
PercentTB = ""
MsgBox "Value must be between 0.00% - 100.0%"
GoSub PercentTB
End If

Where PercentTB have this sub:

Private Sub PercentTB_KeyPress(ByVal KeyAscii A
MSForms.ReturnInteger)
If ((KeyAscii < Asc("0")) Or (KeyAscii > Asc("9"))) Then
KeyAscii = 0
End If
End Sub

and I get ERROR, Label not defined in line "GoSub PercentTB"

I also need text box "PercentTB" looking like XX.X%

Thanks
 
T

Tom Ogilvy

Put your conditions in the Exit Event

Private Sub PercentTB_Exit(ByVal Cancel As MSForms.ReturnBoolean)
PercentTB.Text = Format(csng(PercentTB.Text),"#0.#%)
if conditions not met then
Cancel = True
End if

End Sub

Cancel set to true cancels the exit from the box.
 
B

Bob Phillips

You could test the value and then reset the focus to the textbox. Something
like

With PercentTB
If (.Value < 0) Or (.Value > 100) Then
MsgBox "Value must be between 0.00% - 100.0%"
.SelStart = 0
.SelLength = Len(.Text)
.SetFocus
End If
End With


--

HTH

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