Userform and Text Box Date

  • Thread starter Thread starter TotallyConfused
  • Start date Start date
T

TotallyConfused

Please help. I have been trying to find a way to mask the date fields in my
userform. (there are many) But can seem to find something that works for
one reason or another. Searching through some forums I found this that I
found would be good and easy but somehow I messed it up. What I want it to
do is when form opens my date fields (testing with textbox64 except my
txtformdate is exempt from this) should be greyed out as mm/dd/yyyy. When
user enters date the date is then changed to black color font. If it is not
a date, then it would displaye Msg Box Data entered is not a date Please try
again. What I have below is not working. Can someone please help. Thank
you in advance.



Private Sub TextBox64_Click(ByVal Cancel As MSForms.ReturnBoolean)
With UserForm2.TextBox64
.Text = ""
.ForeColor = RGB(0, 0, 51)
With UserForm2.TextBox64
If Not IsDate(UserForm2.TextBox64.Text) Then
MsgBox """The Data entered is not a Date""" _
& Chr(10) & " ""Please Try again"""

Exit Sub

End If

End With

End Sub





Private Sub UserForm_Initialize()
Me.txtFormDate = Date
'Me.FormDate = format(Date,"mm-dd-yyyy")
With Me.TextBox64
.Text = "dd/mm/yy"
.ForeColor = RGB(204, 204, 204)
.Font.Size = 10
End With

End Sub
 
hi,
what version excel are you using? i don't seem to have a click event for
textboxes.
anyway, i edited your code to 3 subs and i "think" it does what you want.
i'm using 03.
Private Sub UserForm_Initialize()
With Me.TextBox1
.Text = "dd/mm/yy"
.ForeColor = RGB(204, 204, 204)
.Font.Size = 10
End With

End Sub

Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal
Shift As Integer)
TextBox1.ForeColor = RGB(0, 0, 51)
End Sub

Private Sub TextBox1_AfterUpdate()

If Not IsDate(TextBox1.Text) Then
MsgBox """The Data entered is not a Date""" _
& Chr(10) & " ""Please Try again"""
TextBox1.Text = ""
TextBox1.SetFocus
Exit Sub
End If

End Sub

works in 03
regards
FSt1
 
Thank you very much this worked! Please one more question. To add this
formatting to other text boxes, do I just add the textboxes name to the subs
below? or do I need to write up individuals sub for each text box that I
want this formatting to apply. Sorry but I am new to code and really trying
to get a grip on this. Thank you.
 
Back
Top