eu criei uma funcao, ai vai?
'Procedimento que verifica a correcao de datas indicadas
Public Function Verifica_Data(Data As String) As Boolean
On Error GoTo Trata_Erro
Verifica_Data = True
If Data = "__/__/____" Then
Exit Function
End If
For i = 1 To 10
If i = 3 Or i = 6 Then
i = i + 1
End If
If Not IsNumeric(Mid(Data, i, 1)) Then
' MsgBox "Data inválida", vbOKOnly + vbInformation
Verifica_Data = False
Exit Function
End If
Next i
Dim Dia, Mes, Ano As Integer
Dia = Mid(Data, 1, 2)
Mes = Mid(Data, 4, 2)
Ano = Mid(Data, 7, 4)
If Dia = 0 Or Mes = 0 Or Mes > 12 Or Ano = 0 Then
' MsgBox "Data inválida", vbOKOnly + vbInformation
Verifica_Data = False
Exit Function
ElseIf Mes = 1 Or Mes = 3 Or Mes = 5 Or Mes = 7 Or Mes = 8 Or Mes = 10 Or Mes = 12 Then
If Dia > 31 Then
' MsgBox "Data inválida", vbOKOnly + vbInformation
Verifica_Data = False
Exit Function
End If
ElseIf Mes = 4 Or Mes = 6 Or Mes = 9 Or Mes = 11 Then
If Dia > 30 Then
' MsgBox "Data inválida", vbOKOnly + vbInformation
Verifica_Data = False
Exit Function
End If
ElseIf Mes = 2 Then
If Int(Ano / 400) = (Ano / 400) Then
If Dia > 29 Then
' MsgBox "Data inválida", vbOKOnly + vbInformation
Verifica_Data = False
End If
ElseIf Int(Ano / 500) = (Ano / 500) Then
If Dia > 28 Then
' MsgBox "Data inválida", vbOKOnly + vbInformation
Verifica_Data = False
End If
ElseIf Int(Ano / 4) = (Ano / 4) Then
If Dia > 29 Then
' MsgBox "Data inválida", vbOKOnly + vbInformation
Verifica_Data = False
End If
ElseIf Dia > 28 Then
' MsgBox "Data inválida", vbOKOnly + vbInformation
Verifica_Data = False
End If
End If
Trata_Erro:
If Err.Number = 13 Then
' MsgBox "Data inválida", vbOKOnly + vbInformation
Verifica_Data = False
End If
End Function