View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
Tom Ogilvy Tom Ogilvy is offline
external usenet poster
 
Posts: 6,953
Default looping when checking isdate

why not just use the exit event of the Textbox

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
if not isdate(me.Textbox1.Text) then
msgbox "Invalid date, try again" & vbNewLine & _
"Use a format like 08/21/2006"
me.Textbox1.Text = ""
Cancel = True
end if
End Sub

--
Regards,
Tom Ogilvy

It would be less confusing to the user if the entry is validated right away.

--
Regards,
Tom Ogilvy


"april27" wrote:

I use a user form with text box that the user shall write a date in. after
pressing abutton the info in the textbox shall be investigated in order to
see that it is a date. if not then display messagebox if otherwise go back to
user form so that the user can insert new info. i just do not get how to do
the loop. how do you "go back" in the loop? vb just complains that it is
private? my code is:

Private Sub callMainProgramButton_Click()
strStartDatum = TextBox1.Text
Call checkDate
Call mainProgram
Unload Me
End Sub

Private Sub checkDate()
Worksheets("Setup").Range("a15") = strStartDatum
If (Not (IsDate(strStartDatum))) Then
MsgBox "Wrong format"
Cancel = True
End If
End Sub


As you can see the upper sub calls the lower sub in which isDate is checked.
however when the sub checkDate() has done one loop i want it to retun
"somewhere" and get new info from the text field. help!!! please!