Excel - Vba Formato Fecha a celda

 
Vista:
sin imagen de perfil
Val: 6
Ha disminuido su posición en 5 puestos en Excel (en relación al último mes)
Gráfica de Excel

Vba Formato Fecha a celda

Publicado por Jorge (3 intervenciones) el 21/07/2018 17:42:06
Saludos.
Tengo la siguiente macro

1
2
3
4
5
6
7
Sub copiaFecha()
    Dim Fecha AS String
    Fecha = "09/05/2018"
    Hoja3.Range("A:A").Select
    Selection.NumberFormat = "dd/mm/yyyy"
    Hoja3.Range("A2").Value = Fecha
End Sub

Esa Fecha tiene el formato Dia/Mes/Año, entonces 09/05/2018 sería 9 de Mayo del 2018
(en realidad ese valor es de una tabla donde el campo fecha es un texto, así que no puede ser cambiado a tipo Date o DateTime o lo que sea)

pero cuando se copia la fecha a la celda A2 aparece como: 05/09/2018, es decir como 5 de Setiembre del 2018

¿Cómo puedo hacer para que me respete mi formato Día/Mes/Año?

Gracias.
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.173
Plata
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Vba Formato Fecha a celda

Publicado por Antoni Masana (1482 intervenciones) el 22/07/2018 09:41:14
Simplemente cambiando el tipo de variable:

1
2
3
4
5
6
7
Sub copiaFecha()
    Dim Fecha AS Date
    Fecha = "09/05/2018"
    Hoja3.Range("A:A").Select
    Selection.NumberFormat = "dd/mm/yyyy"
    Hoja3.Range("A2").Value = Fecha
End Sub

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
Val: 6
Ha disminuido su posición en 5 puestos en Excel (en relación al último mes)
Gráfica de Excel

dar formato de fecha a un texto (que contiene una fecha)

Publicado por Jorge (3 intervenciones) el 22/07/2018 16:14:22
lo que pasa es que el valor de la fecha no es una variable porque proviene de un texto plano:

1
2
3
4
5
6
Sub copiaFecha()
    Fecha = "09/05/2018" /*en realidad es un texto plano que se jala de un archivo .txt */
    Hoja3.Range("A:A").Select
    Selection.NumberFormat = "dd/mm/yyyy"
    Hoja3.Range("A2").Value = Fecha
End Sub

el texto plano sería algo así, pero digamos que solo me interesa el tema de pasar la fecha con el formato que deseo
1
2
3
4
5
6
7
otra columna | 09/05/2018 |  Más columnas con diferentes datos | ...
otra columna | 10/05/2018 |  Más columnas con diferentes datos | ...
otra columna | 11/05/2018 |  Más columnas con diferentes datos | ...
otra columna | 12/05/2018 |  Más columnas con diferentes datos | ...
otra columna | 20/07/2018 |  Más columnas con diferentes datos | ...
otra columna | 21/07/2018 |  Más columnas con diferentes datos | ...
otra columna | y así más de mil filas con fechas... etc.

y no, NO puedo cambiar ese texto plano porque lo genera otra aplicación que yo no tengo el código fuente

ahora, cuando jalo el texto fecha que está en formato dd/mm/yyyy
excel lo cambia automáticamente a mm/dd/yyyy, por más que le especifique el formato de fecha

digamos si la fecha es 09/05/2018 (9 de mayo del 2018)
excel lo cambia a 05/09/2018 (5 de setiembre del 2018)

si lo copio sin formato, también lo cambia automáticamente el formato a mm/dd/yyyy
tampoco es cosa de cambiar la configuración regional de windows

he probado pasarlo como formato texto: "@"
ahí si lo copia tal cual, pero ya no sería una fecha si no un texto cualquiera y ya no se podría hacer operaciones de fecha sobre esos valores.

Gracias.
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
Imágen de perfil de Antoni Masana
Val: 4.173
Plata
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

dar formato de fecha a un texto (que contiene una fecha)

Publicado por Antoni Masana (1482 intervenciones) el 23/07/2018 01:21:07
No se como lees el fichero. Supongo que debes estar usando una macro, yo he realizado varias macros para importar datos y nunca he tenido este problema con las fechas.

Mi formato de visualización en Windows y en Excel es dd/mm/aaaa. importo fechas en diferentes formatos y todas se convierten correctamente.

Te adjunto un ejemplo con fichero de datos, libro Excel y una macro que lee el fichero y el segundo campo lo pone en la columna A y en C tiene un copia el dato de la A y lo pone en formato extendido, es decir Lunes, 23 de Julio de 2018 para ver si lo hace bien.

Si no puedes hacer que funcione tu macro envíame el libro y un fichero de texto para leer para probar y te lo reviso.

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
Val: 6
Ha disminuido su posición en 5 puestos en Excel (en relación al último mes)
Gráfica de Excel

dar formato de fecha a un texto (que contiene una fecha)

Publicado por Jorge (3 intervenciones) el 23/07/2018 05:33:16
me salió!
Gracias!

Lo hice como me dijiste
Asigné una variable como tipo "Date"

entonces el valor para la columna que contiene las fechas lo paso primero por la variable de tipo Date
y en lugar de pasar el valor directamente a la celda, paso el valor de la variable date a la celda
y así si me respeta mi formato
1
2
3
4
5
6
7
8
9
10
11
12
13
Dim FechaTmp As Date
    Hoja3.Range("A:A").Select
    Selection.NumberFormat = "dd/mm/yyyy"
 
    /*Recorro archivo txt*/
 
    FechaTmp = Datos(1) /* donde se almacena la fecha */
    Hoja3.Range("A" & Linea).Value = FechaTmp
 
    /*Para otros valores sin formato los copio directamente (así pasaba antes mi valor de la fecha)*/
    Hoja3.Range("B" & Linea).Value = Datos(0)
    Hoja3.Range("C" & Linea).Value = Datos(2)
    etc.

Gracias nuevamente!
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

dar formato de fecha a un texto (que contiene una fecha)

Publicado por Favio Jimenez (2 intervenciones) el 08/10/2019 16:52:22
Buenos dias, cordial saludo, me podrian ayudar por favor con una consulta, cree una macro para exportar valores de un archivo excel a un archivo de texto .txt, necesito que en el campo fecha de el archivo de texto me quede de esta forma yyyy-mm-dd, lo hago desde el libro de excel pero al momento de crear el archivo txt me lo pone por defecto dd/mm/yyyy, agradezco su colaboración, gracias.
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
Imágen de perfil de Antoni Masana
Val: 4.173
Plata
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

dar formato de fecha a un texto (que contiene una fecha)

Publicado por Antoni Masana (1482 intervenciones) el 08/10/2019 20:52:55
Hay una función que se llama format() y que sirve para esto.

1
Print #1, Format(Range("A1"), "yyyy-mm-dd")


Saludos.
\\//_
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

dar formato de fecha a un texto (que contiene una fecha)

Publicado por favio (2 intervenciones) el 08/10/2019 21:20:31
Muchas gracias ha sido de gran ayuda
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
Val: 2
Ha aumentado su posición en 12 puestos en Excel (en relación al último mes)
Gráfica de Excel

dar formato de fecha a un texto (que contiene una fecha)

Publicado por Santino Aguilar (2 intervenciones) el 29/01/2020 01:44:18
Qué tal, yo estoy teniendo un problema al convertir las fechas, no todas las fechas se cambian al formato de fecha corta y estoy algo desesperado ya que lo he intentado de muchas formas.
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
Val: 5
Ha aumentado su posición en 6 puestos en Excel (en relación al último mes)
Gráfica de Excel

Vba Formato Fecha a celda

Publicado por Denys (3 intervenciones) el 14/05/2020 02:50:19
Buenas estimado

disculpa me puedes apoyar con la siguiente consulta:

Estoy utilizando una macro para reemplazar unos caracteres en fechas de "-" a "/" pero al utilizar la macro me cambia el formato de fecha.
El formato de fecha que estoy utilizando es "d/m/aaa h:mm" me lo cambia a "m/d/aaa h:mm"

Quedo atento espero me puedan apoyar

dejo codigo de la macro:

1
2
3
4
5
6
7
8
9
10
Sub Fecha()
'
' Fecha Macro
'
 
'
Range("J2:J1048576,K2:K1048576,T2:T1048576").Select
Range("T2").Activate
Selection.Replace What:="-", Replacement:="/", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
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