ribeiroguaruja 10/6/2022, 04:48
Consegui este procedimento do Marcoratti...
Mas não aceita máscara de entrada e tenho que digitar as barras "/" na data...
===============================================================
Private Sub cmdConvertDate_Click()
Dim strYear As String
Dim intSlash As Integer
If IsDate(txtDate) or txtDate = "2/29/00" Then
'procura primeiro separador
intSlash = InStr(txtDate, "/")
If intSlash > 0 Then
'procura segundo separador
intSlash = InStr(intSlash + 1, txtDate, "/")
If intSlash > 0 Then
'Extrai ano da data
strYear = Mid(txtDate, intSlash + 1)
If Len(strYear) = 2 Then
If CInt(strYear) < 50 Then
' Menor que 50: ano = 20XX.
strYear = "20" & strYear
Else
' Maior que 50: ano = 19XX.
strYear = "19" & strYear
End If
End If
MsgBox "Data Informada: " & txtDate
MsgBox "ANO (Sua Regra): " & strYear
MsgBox "ANO (Regra do VB): " & Year(txtDate)
Else
MsgBox "Data no formato não esperado!"
End If
Else
MsgBox "Data no formato não esperado!"
End If
Else
MsgBox "Data inválida !"
End If
' Limpando a data no texto
txtDate.Text = Left(txtDate.Text, intSlash) & strYear
End Sub
========================================================================