Formato fecha en formulario excel

Tengo un problema que me esta volviendo loca.

Tengo un formulario excel que tiene cuadros de fecha. En VBA tiene este código

Private Sub TextBox11_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    Select Case Len(TextBox11.Value)
    Case 2
    TextBox11.Value = TextBox11.Value & "/"
    Case 5
    TextBox11.Value = TextBox11.Value & "/"
    End Select
End Sub

Pues bien... No sé cual es el motivo pero si introduzco una fecha, cuando vuelvo a ver el registro me lo cambio por un números. Ejm si escrito 02/06/2021 y doy a guardar cuando vuelvo a buscar el archivo me aparece 44233 y no me deja borrar. Pero esto no ocurre siempre si escribo 17/05/2021 me guarda bien la fecha y me deja cambiarla.... . ¡misterios de la vida!. En la hoja de datos me vuelca bien todos los registros

1 respuesta

Respuesta
1

Y doy a guardar cuando vuelvo a buscar el archivo me aparece 44233

¿El 44233 te aparece en la celda?

Pon aquí el código que utilizas para pasar los datos a la celda.


Utiliza lo siguiente:

Para pasar el dato de la celda al textbox. Cambia Range("A2"), por la celda donde tienes la fecha.

TextBox11 = Format(Range("A2"), "dd/mm/yyyy")

Para pasar el dato del textbox a la celda.

Range("A2").Value = CDate(TextBox11)

Buenos días Dante.

Muchas gracias. pero he estado probando y no lo consigo.

El 44233 no me aparece en la hoja de datos donde se vuelca la información. Aquí aparece primero el mes/día/año. Es cuando vuelvo al formulario cuando aparece en el txtbox estos número pero si pincho cerca me cambia al formato de fecha que había introducido.

te dejo aquí el código que utilizo para modificar los datos por si me puedes echar una mano

Private Sub MODIFICAR_Click()
Dim fila As Object
Dim linea As Integer
valor_buscado = Me.TextBox7
Set fila = Sheets("BD").Range("A:A").Find(valor_buscado, lookat:=xlWhole)
linea = fila.Row
Range("B" & linea).Value = Me.TextBox1.Value

La impresión que me da es que no tiene el formato correcto pero no se como cambiarlo

Lo que no entiendo es porque ocurre algunas veces con determinadas fechas ¿puede ser por que me vuelca mes/dia/año en la hoja de datos?

Muchas gracias

Esto es lo que te había comentado. Pero no conocía tu código.

Cambia esta línea:

Range("B" & linea).Value = Me.TextBox1.Value

Por esta:

Range("B" & linea).Value = cdate(Me.TextBox1.Value)

Muchas gracias por la respuesta pero he estado haciendo los cambios que me has dicho y me sigue cambiando el formato cuando cambio de registro o salgo del formulario.

Seguramente tienes más código que está guardando datos en la hoja. Debes hacer lo mismo en todas partes donde guardes fechas en la hoja.

Si no puedes resolverlo, Puedes compartir tu archivo en googledrive. Cambia la información confidencial por datos genéricos.

Después de que subas el archivo a google drive, lo compartes para que cualquiera que tenga el vínculo. Copias el vínculo y lo pegas aquí.

Buenos días:
Aquí va el enlace por si le puedes echar un vistazo. Verás que tengo varios txtbox de fecha pero solo había probado tu código en el TXT.

Un millón de gracias

https://drive.google.com/file/d/1Zvb0xkQUw_RWboab3D7DmH0v0o6JcQi3/view?usp=sharing 

Te envié una solicitud para el acceso al archivo

Nota: no me están llegando los avisos en todo expertos. Después de darme el acceso al archivo, envíame un correo a [email protected], solamente para avisarme.

Ya revisé tu código y no estás haciendo todas mis recomendaciones, de hecho solamente son 2 recomendaciones.

1. Para pasar los datos de la hoja al textbox.

Tienes esto:

Me.TextBox11 = Application.WorksheetFunction.VLookup(codigo, Sheets("BD").Range("A:Ak"), 17, 0)

Debes tener esto:

Me.TextBox11 = Format(Application.WorksheetFunction.VLookup(codigo, Sheets("BD").Range("A:Ak"), 17, 0), "dd/mm/yyyy")

2. Cuando pasas los datos del textbox a la celda:

Range("Q4" & linea).Value = CDate(TextBox11)

¡Gracias! 

Genial.... muchísimas gracias.... y perdona por no haberte entendido desde el principio y volverte loco

Un abrazo y ha sido un gran placer contar con tu inestimable ayuda

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas