Máscara de entrada para formato de fecha dd/mm/yyyy
Tengo un evento al cambiar el textbox que intenta poner el formato dd/mm/yyyy, funciona más o menos bien, lo que pasa es que da problemas si ya tiene un valor y trato de modificarlo y si salgo del campo por algún motivo, se pierde el formato y ya no se sabe cuál fecha tenía, tengo que limpiar y volver a cargar el form. Si fueran tan amables de revisar el código y darme alguna observación para optimizarlo o bien si ya tienen algo mas robusto que pueda utilizar. Gracias
Private Sub TextBox4_Change()
Dim Texto As Variant
Dim Caracter As Variant
Dim Largo As Integer
On Error Resume Next
Texto = Me.TextBox4.Value
Largo = Len(Me.TextBox4.Value)
For i = 1 To Largo
Caracter = Mid(Texto, i, 1)
If Caracter <> "" Then
If Caracter < Chr(47) Or Caracter > Chr(57) Then
Me.TextBox4.Value = Replace(Texto, Caracter, "")
Else
End If
End If
Next i
On Error GoTo 0
Caracter = 0
Caracter1 = 0
'seleccionamos de acuerdo a la longitud de los datos
'que estamos ingresando
Select Case Len(TextBox4.Value)
'len = largo o longitud
Case 2
'si el textbox tiene 2 caracteres
TextBox4.Value = TextBox4.Value & "/"
'se colocará automáticamente una "/" luego del segundo caracter
Case 5
'si el textbox tiene 5 caracteres
TextBox4.Value = TextBox4.Value & "/"
'se colocará automáticamente una "/" luego del quinto caracter
End Select
If Len(Me.TextBox4.Text) > 10 Or Len(Me.TextBox4.Text) < 10 Then
Me.TextBox4 = Left(Me.TextBox4.Text, 10)
Me.TextBox4.SelStart = 10
End If
End Sub