Public tx As String
Public k As Integer
Private Sub CommandButton1_Click()
If Not IsDate(TextBox1) Then
MsgBox "date invalide"
TextBox1.SetFocus
TextBox1.SelStart = 10
Else
MsgBox "Date Valide"
End If
End Sub
Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Dim z As String
If TextBox1 = "" Then TextBox1 = "--/--/----": k = 0: tx = "": TextBox1.SelStart = 0: Exit Sub
If KeyCode = 8 Then
If k <= 1 Then TextBox1 = "--/--/----": TextBox1.SelStart = 0: k = 0: tx = "": Exit Sub
k = k - 1
tx = Left(tx, k)
z = Right("--/--/----", 10 - k)
If Len(tx) = 3 Then tx = Left(tx, 2): k = 2: z = "/--/----"
If Len(tx) = 6 Then tx = Left(tx, 5): k = 5: z = "/----"
TextBox1 = tx & z
TextBox1.SelStart = k
Exit Sub
End If
If k >= 10 Then TextBox1 = Left(TextBox1, 10): Exit Sub
k = k + 1
tx = tx & Mid(TextBox1, k, 1)
z = Right("--/--/----", 10 - Len(tx))
If Len(tx) = 6 Then tx = Left(tx, 5) & "/" & Right(tx, 1): z = "-": k = k + 1
If Len(tx) = 5 Then tx = tx & "/": z = "----": k = k + 1
If Len(tx) = 3 Then tx = Left(tx, 2) & "/" & Right(tx, 1): z = "-/----": k = k + 1
If Len(tx) = 2 Then tx = tx & "/": z = "--/----": k = k + 1
TextBox1 = tx & z
TextBox1.SelStart = k
End Sub
Private Sub UserForm_Activate()
TextBox1 = "--/--/----"
TextBox1.SelStart = 0
End Sub