Como tienes un textbox, hay que ayudarlo para pasar los datos a fechas, para ello puedes utilizar una de las siguientes opciones:
Opción 1. Lo más sencillo y sin que te compliques es que captures las fechas bien, ej "20/02/2014", con esto te ahorras muchos dolores de cabeza.
Opción 2. Si no vas a capturar la fecha de forma correcta, entonces se tiene que validar que los dígitos 3 y 4 sea un número del 1 al 12 (meses), luego validar que los dígitos 1 y 2 estén dentro del mes (el mes que pusiste en los dígitos 3 y 4), es decir, si pusiste en mes "04", entonces en días solamente puedes poner del 1 al 30. Y por último validar que el año sea un número parecido a un año. En fin, tienes que validar varios datos y si no es una fecha real, entonces te enviará un error.
Opción 3. Poner un control de fecha: puede ser un control calendar, un monthview, un DTPicker, un GraphittiDate, en fin, existen varios controles que puedes utilizar en lugar de un textbox, con este tipo de controles solamente tienes que dar un click.
Para insertar un control de fecha, sigue los pasos:
Entra a vba, inserta un formulario, entra al menú de vba / Herramientas / Controles adicionales.
En la lista de controles que te aparecen busca el que se llama "Microsoft Monthview Control 6.0(SP4)", marca la casilla del lado izquierdo del control y presiona Aceptar
En tu Cuadro de Herramientas aparecerá el icono para MonthView. Arrastra el control al panel del userform para que te aparezca el calendario. Si no te funciona intenta con el control "Microsoft Monthview Control 6.0(SP6)"
Opción 4. Puedes poner en un combo los años, en otro combo los meses y en otro combo los días, y luego juntar los tres combos con una instrucción como esta
fecha = DateSerial(Year(combobox1), moth(combobox2), Day(combobox3))
Bueno, ya tienes varias opciones más prácticas que el textbox. Utiliza una que sea más sencilla y funcional.
Saludos. Dante Amor
No olvides valorar la respuesta.