Move the messagebox call up to above the end if as shown below. Then it only runs if there is an empty textbox.I noticed that if I ran the userform and didn't fill in all the fields, it would give me the message box with the list of empty fields. If I filled in everything, and clicked on the button again, I still get a message box, even though everything is filled in now. Why is that? Does it need to be reset somehow so each time it checks the controls, it starts fresh?
[VBA]Private Sub CommandButton1_Click()
Dim msg As String
Dim var
Call MyErrTraps
If bolHasErrors Then
For var = 0 To UBound(ErrMessages)
msg = msg & ErrMessages(var) & strEmpty & _
vbCrLf
Next
MsgBox strSaneNames & msg
End If
Unload Me
End Sub[/VBA]