Notifications
Clear all

Validação DATA

3 Posts
2 Usuários
0 Reactions
1,226 Visualizações
(@ccaciano)
Posts: 0
New Member
Topic starter
 

Eu preciso obrigar o usuário a digitar a DATA em um formulário com o padrão DD/MM/AA, porém a função IsDate só verificar o mês, pois sempre que digito o dia ou ano incorreto ele aceita a data.

 
Postado : 16/12/2016 5:58 am
(@fcarlosc)
Posts: 0
New Member
 

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
(@ccaciano)
Posts: 0
New Member
Topic starter
 

Boa Tarde
Francisco,

Esse código resolveu sim... muito obrigado!

 
Postado : 21/12/2016 12:11 pm