Home |
Search |
Today's Posts |
#1
Posted to microsoft.public.excel.programming
|
|||
|
|||
restrict textbox on userform to mm/yyyy
Does anyone know how to restrict a textbox on a userform to a date in
the format mm/yyyy? Thanks. |
#2
Posted to microsoft.public.excel.programming
|
|||
|
|||
restrict textbox on userform to mm/yyyy
You could try the following set of event code procedures for the TextBox to
control the user's input. NOTE that, as I have written the code, the user does not have to (actually, they can't) type in the slash... my code will enter it automatically for them. The user will be able to leave the TextBox **only** if the TextBox is empty or if it contains a valid date (two-digit month/four-digit year). In addition, the user will only be able to type digits into the TextBox... no other characters can be entered. If you have other required event code of your own that use event procedures I have employed below, then you will have to integrate your required code into my code. To implement my code, just copy/paste all of the code between the START and END OF CODE markers into the UserForm's code window. '*************** START OF CODE *************** Dim LastPosition As Long Private Sub TextBox1_Change() Dim Cursor As Long Static LastText As String Static SecondTime As Boolean If Not SecondTime Then SecondTime = True With TextBox1 If .Text Like "*[!0-9/]*" Then Beep SecondTime = True .Text = LastText .SelStart = LastPosition Else Cursor = .SelStart Do While InStr(.Text, "/") .SelStart = InStr(.Text, "/") - 1 .SelLength = 1 .SelText = "" Cursor = Cursor - 1 Loop If Len(.Text) 2 Then .SelStart = 2 .SelText = "/" Cursor = Cursor + 1 End If .SelStart = IIf(Cursor < 0, 0, Cursor) LastText = .Text LastPosition = Cursor End If End With SecondTime = False End If ' Place any other Change event checking code here End Sub Private Sub TextBox1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) With TextBox1 LastPosition = .SelStart ' Place any other MouseDown code here End With End Sub Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) With TextBox1 LastPosition = .SelStart ' Place any other KeyPress checking code here End With End Sub Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean) If Len(TextBox1.Text) Then Cancel = Len(TextBox1.Text) < 7 Or Not IsDate(TextBox1.Text) End If ' Place any other Exit checking code here End Sub '*************** END OF CODE *************** -- Rick (MVP - Excel) "lcoreilly" wrote in message ... Does anyone know how to restrict a textbox on a userform to a date in the format mm/yyyy? Thanks. |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Forum | |||
fill userform textbox from userform listbox clik event | Excel Programming | |||
Restrict date format for UserForm | Excel Discussion (Misc queries) | |||
Userform Date Formatting MM/DD/YYYY | Excel Programming | |||
restrict entry in a textbox to a range of values | Excel Programming | |||
UserForm TextBox to ActiveSheet TextBox over 256 characters | Excel Programming |