• 0
Sign in to follow this  
Cliany

Aceitar apenas data como dado válido

Question

Fala pessoal em um text box do meu formulário quero que aceite apenas valores de data fiz dessa forma:
 

If Not IsDate(Me.MP1_PG1_DtDevolBX.Value) Or Len(Me.MP1_PG1_DtDevolBX.Value) <> 10 Then

    MsgBox "Digite uma data de devolução de pasta válida no formato DD/MM/AAAA!", vbCritical
    
    Application.ScreenUpdating = True
    
    Exit Sub

End If

 

Até ae tudo bem, só que apenas a primeira condicional Not IsDate ele aceita valores de horário, por isso coloquei a segunda condicional para ter 10 caracteres (DD/MM/AAAA),só que ainda aceita valores como 14:52:0000. Tem alguma forma mais prática de aceitar só data em determinado formato como valor?

Outra coisa, alguém sabe porque datas antes de 1800 dá um erro de definição de variável? :S

 

 

Share this post


Link to post
Share on other sites

2 answers to this question

Recommended Posts

  • 0

fala meu amigo 

tenta usar uma mascara de formatação

Private Sub MP1_PG1_DtDevolBX_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

MP1_PG1_DtDevolBX.MaxLength = 10 '10/10/2014
 Select Case KeyAscii
      Case 8       'Aceita o BACK SPACE
      Case 13: SendKeys "{TAB}"    'Emula o TAB
      Case 48 To 57
         If MP1_PG1_DtDevolBX.SelStart = 2 Then MP1_PG1_DtDevolBX.SelText = "/"
         If MP1_PG1_DtDevolBX.SelStart = 5 Then MP1_PG1_DtDevolBX.SelText = "/"
      Case Else: KeyAscii = 0     'Ignora os outros caracteres
   End Select

End Sub

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this