View Single Post
  #5   Report Post  
Posted to microsoft.public.excel.programming
Dave Peterson Dave Peterson is offline
external usenet poster
 
Posts: 35,218
Default MessageBox and then return to usrForm

Maybe you can validate your entries before you get to the reporting step.

Something like:

Option Explicit
Private Sub CommandButton1_Click()
MsgBox "Ok clicked"
Unload Me
End Sub
Private Sub TextBox1_Change()
Call IsEverythingValid
End Sub
Private Sub TextBox2_Change()
Call IsEverythingValid
End Sub
Private Sub UserForm_Initialize()
Me.CommandButton1.Enabled = False
Me.Label1.Caption = ""
End Sub
Private Sub IsEverythingValid()
Dim AllOk As Boolean

AllOk = True
If IsDate(Me.TextBox1.Value) = False Then
AllOk = False
Me.Label1.Caption = "Please Enter A Date In Textbox 1"
Else
If IsDate(Me.TextBox2.Value) = False Then
AllOk = False
Me.Label1.Caption = "Please Enter A Date In Textbox 2"
End If
End If

If AllOk = True Then
Me.Label1.Caption = ""
End If

Me.CommandButton1.Enabled = AllOk

End Sub

The button won't be enabled until there's something that looks like a date in
each of those two checkboxes.

And you could add other checks, too.


Fabrizio wrote:

I have a problem with a userform. This userform is shown when the user clicks
on a button in the excel spreadsheet. The user is then to enter some info in
various fields in the userForm. However when the user submits erronous info
the program gives a message in a message box to the user. when the user
clicks the ok button the user shall return to the userform (preferably
containing the same info as before). My problem is that I dont know how to
retun to the userform. In the code for Sheet1 I have:

Public Sub startKnapp_Click()
userForm1.Show
End Sub

when the user clicks the button the userform is shown and it is possible to
enter info. The check for error info (it works) is:

Private Sub checkDate()
If (Not (IsDate(userForm1.TextBox1.Text))) Then
MsgBox ("Error")
End If
If (Not (IsDate(userForm1.TextBox2.Text))) Then
MsgBox ("Error")
End If
End Sub

however this sub is called when the user has enterd info and THEN PRESSES AN
OK BUTTON. The code is:

Private Sub genereraRapportKnapp_Click()
Call checkDate
Call mainProgram
Unload Me
End Sub

How do I write the code so that the user returns to the form? I have tried
calling the sub that shows the userform but it does not work (the program
says that it is already shown..). If you know how to solve this problem or
avoid it please help me! Any assistance is of value!


--

Dave Peterson