ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   looping when checking isdate (https://www.excelbanter.com/excel-programming/364505-looping-when-checking-isdate.html)

april27

looping when checking isdate
 
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!

Tom Ogilvy

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!



All times are GMT +1. The time now is 06:51 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com