Validar fechas en textbox - vba excel

Quisiera saber cómo escribir el código para validar las fechas en un textbox para que el usuario ingrese el formato dd/mm/aaaa. Estoy programando en vba excel 2003 pero con el código que generé se puede colocar cualquier número que resulta por ejemplo en un mes 35 día 60 año 8598. Aparte de eso no puedo restar entre la fecha del textbox4 y el textbox5. Cuál sería un código idóneo para que me quede en formato de fecha válido, con el que pueda hacer operaciones entre fechas, y que el usuario quede restringido a digitar una fecha y no escriba por ejemplo 1365426542 porque me genera un problema de "desbordamiento".
El código que escribí es el siguiente pero no es adecuado:
Private Sub TextBox5_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TextBox5.Text = Format(Val(TextBox5.Text), "##/##/####")
Cancel = False
End Sub

1 respuesta

Respuesta
3
Primero comprobaría si es una fecha ¿válida?. Y lo pongo así porque traga con casi todo.
Después, sabiendo que la fecha es válida haría lo siguiente: convertirla a fecha y después a texto. Si el resultado es igual que lo que han escrito es porque no han puesto del 31 de febrero.
if isdate(textBox5.text) then
    if textBox5.text = format$(cvdate(textBox5.text),"dd/mm/yyyy") then...
La otra forma, quizás más correcta a nivel informático, sería separar los campos y comprobar que está bien el año, mes y día, pero eso es un poco más complicado.
Si quieres que te prepare una función para esa validación dímelo.
Un salud

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas