Formato de fecha de inputbox VBA excel

Una vez más tengo una pregunta...
Estoy solicitando por medio de un inputbox una fecha para hacer unos cálculos, luego la fecha la coloco en una celda...
El problema que tengo es que como solicito la fecha con un inputbox... Lo validé para que no aceptara letras.. Ni formatos de fechas diferentes. Lo hice de la siguiente manera
dim x
x = InputBox("Escribe la fecha de vencimiento")    
            Do While Not IsDate(x)
                If x <> "" Then
                    p = MsgBox("Formato de fecha incorrecto. Asegúerese de insertar la fecha con formato dd/mm/aaaa", vbCritical)
                    x = InputBox("Escriba la fecha de vencimiento (dd/mm/aaaa)")
                Else
                    End
                End If
            Loop

Como pueden ver... Lo validé para que me aceptara ese formato de fecha.. El problema es que yo NO puedo trabajar con el formato mes/día/año... Sino al contrario día/mes/año
como puedo hacer para que me acepte la fecha con este formato.. Dd/mm/aaaa
y al mismo tiempo validarlo para que no acepte letras ni números sueltos.

1 respuesta

Respuesta
1
Mi consejo es que leas la fecha con formato AAAAMMDD. Aunque no sea el formato habitual es mejor que siempre uses el mismo formato y que este no dependa de la configuración de tu ordenador.
Además, es un formato bastante sencillo de validar y después puedes convertirlo a fecha con una instrucción como la siguiente:
fecha = dateserial(val(mid$(txt,1,4)),val(mid$(txt,5,2)),val(mid$(txt,7,2)))
Para finalizar, si quieres evitar que te escriban un día como el 20080230, podrías comparar el texto tecleado con la fecha formateada. Esto es:
if txt <> format$(fecha,"yyyymmdd") then msgbox "El día tecleado es incorrecto (el mes no tiene tantos días)"

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas