Bom-dia
Vê se resolve...!?
Private Sub txtData_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
'Permite apenas caracteres numéricos
If KeyAscii = vbKeyReturn Or KeyAscii = vbKeyBack Then Exit Sub
If KeyAscii < vbKey0 Or KeyAscii > vbKey9 Then
KeyAscii = 0
ElseIf KeyAscii <> vbKeyDecimal Then
End If
'Separador Data
Select Case Len(txtData.Text)
Case Is = 2
txtData.Text = txtData.Text & "/"
Case Is = 5
txtData.Text = txtData.Text & "/"
Case Is = 8
End Select
End Sub
======================================================================
Private Sub txtData_Exit(ByVal Cancel As MSForms.ReturnBoolean)
'código sai da macro caso seja atualizado o campo vazio
If txtData = "" Then
Cancel = true
txtData.SetFocus
End If
If IsDate(txtData.Text) Then
txtData.Text = CDate(txtData)
Else
MsgBox ("Data Inválida !"), vbInformation, "Atenção!"
Cancel = True
txtData.Text = ""
txtData.SetFocus
End If
End Sub
Também muda a propriedade do textbox (MaxLength) e coloca " 8 "
Att,
Francisco
Postado : 16/12/2016 6:40 am