Excel - Colisión en el formato de un dato fecha americana y fecha española.

 
Vista:
sin imagen de perfil

Colisión en el formato de un dato fecha americana y fecha española.

Publicado por Ramón (90 intervenciones) el 17/07/2023 09:02:51
Mediante varias líneas de código semejantes a la que escribiré al final, me llevo a diversas columnas de una determinada fila de una hoja de cálculo los valores de varios TxtBoxes ubicados en determinado UserForm.
Todo funciona correctamente menos cuando el valor que pretendo copiar en la hoja de cálculo deviene de un TextBox que contiene un valor de fecha en el formato “dd/mm/yyyy”, pues pese a que mediante código le ‘repito’ que copie en la hoja de cálculo el valor escrito en el TxtBox con el formato “dd/mm/yyyy”, SISTEMÁTICAMENTE ME CAMBIA EL DÍA POR EL MES Y VICEVERSA.

La línea de código que utilizo para copiar en la columna C de la hoja de cálculo (es la que contiene los valores de fecha, y que, por si acaso influía, me he cuidado de dar el formato general a toda ella de “FECHA”):

Range("C" & Linea).Value = Format(Me.Txt_Fecha.Value, "dd/mm/yyyy")


Y no solo lo anterior, ADEMÁS, es que si en la línea de código que tenía escrita le digo que me copie el valor en formato "mm/dd/yyyy", hace justo lo contrario: en los dos primeros caracteres de la serie me copia el día, y en los dos siguientes (tras la separación del slash: "/") me copia el mes! ¿POR QUÉ? :-0000
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Colisión en el formato de un dato fecha americana y fecha española.

Publicado por Antoni Masana (2499 intervenciones) el 17/07/2023 17:55:06
Tienes que pasar el valor del TextBox a la celda con un DATEVALUE().
Esta función te convierte la fecha de hoy 17/07/2023 en el número 45124 y después con la opción Formato de celda en el formato que quieras.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Colisión en el formato de un dato fecha americana y fecha española.

Publicado por Ramón (90 intervenciones) el 17/07/2023 19:16:23
Lo siento Antoni, pero me faltan conocimientos...

Tratando de interpretar lo que me dices he escrito:

DateValue(Range("C" & Linea)) = Format(Me.Txt_Fecha.Value, "dd/mm/yyyy")

Pero me da Error 424: "Se requiere objeto"

Y este otro código:

Range("C" & Linea).DateValue = Format(Me.Txt_Fecha.Value, "dd/mm/yyyy")

... me da el error 438 "El objeto no admite esta propiedad o método".

¿¿??
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Colisión en el formato de un dato fecha americana y fecha española.

Publicado por Ramón (90 intervenciones) el 18/07/2023 10:43:48
Al final, contra todo pronóstico , lo he conseguido.

Lo dejo aquí por si sirviese para alguien:

Range("C" & Linea) = DateValue(Me.Txt_Fecha)

De nuevo un millón de gracias, Antoni!!!

P.S.- No he tenido que acudir a la función Format porque en destino la celda "C" tiene formato de Fecha...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar