El control TextBox almacena y devuelve datos solo en formato Texto - es ahi donde radica tu problema. Deberas transformar el texto en una fecha valida, p.ej. mediante la
funcion CDate.
Podrias hacer algo como lo siguiente:
1) Si usas un
control TextBox en un UserForm (Formulario de VBA) entonces usa el
evento Exit del objeto TextBox, asi:
- Código: Seleccionar todo
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Range("A1") = CDate(TextBox1)
End Sub
o mejor aun crea un boton digamos Finalizar que pase todos los datos a sus respectiavas celdas al cerrar el formulario. Para ello usa el
evento Click del objeto CommandButton(Finalizar):
- Código: Seleccionar todo
Private Sub Finalizar_Click()
Range("A1") = CDate(TextBox1)
Unload Me
End Sub
2) Si usas un
control TextBox de la barra de herramientas Visual Basic en la hoja de Excel, entonces prueba usar el
evento LostFocus del objeto TextBox, algo asi:
- Código: Seleccionar todo
Private Sub TextBox1_LostFocus()
Range("A1") = CDate(TextBox1)
End Sub