La famosa inversión del día y del mes VBA

Nicoroth Mensajes publicados 55 Estado Miembro -  
tompols Mensajes publicados 1273 Fecha de registro   Estado Colaborador Última intervención   -
Hola,

He estado buscando un poco en internet para ver por qué cuando creo una macro para formatear fechas, VBA me invierte el día y el mes.
He visto que muchas personas tienen problemas... y yo también.
Así que, un pequeño empujón sería bienvenido, me explico,

aquí está mi función que me permite (manualmente) reformatear fechas que están en una columna K (ya que utilizo estas fechas en otra hoja y necesito reformatearlas de esta manera para que aparezcan en el formato dd/mm/aaaa)
Haciéndolo manualmente, funciona perfectamente, pero deseo crear una pequeña macro que me permita hacerlo, y esta macro de abajo me invierte el día y el mes.
Después de mis investigaciones, vi que la función CDate permitía evitar que el programa hiciera esta inversión, sin embargo, siendo un principiante en VBA, no sé (después de varios intentos) cómo escribir la función...

Quizás lo esté haciendo muy mal, pero aquí va:

Sheets("Hoja1").Select
Columns("K:K").Select
Selection.TextToColumns Destination:=Range("K1"), DataType:=xlFixedWidth, _
FieldInfo:=Array(Array(0, 2), Array(10, 1)), TrailingMinusNumbers:=True
Sheets("Hoja2").Select

Si alguien tiene una idea, me ayudaría mucho.

Gracias
Configuración: Windows 2003 / Internet Explorer 7.0

7 respuestas

  1. tompols Mensajes publicados 1273 Fecha de registro   Estado Colaborador Última intervención   460
     
    Hola
    prueba con TEXTO(K3;"dd/mm/aaaa") en lugar de K3 :)
    --
    Se entiende por una buena solución, la solución simple y fácil de un problema difícil y complicado.
    1
  2. tompols Mensajes publicados 1273 Fecha de registro   Estado Colaborador Última intervención   460
     
    Hola,
    ¿podrías por favor publicar un ejemplo de archivo con tus valores en la columna K (www.cjoint.com)?
    --
    Se entiende por una buena solución, la solución simple y fácil de un problema difícil y complicado.
    0
  3. lermite222 Mensajes publicados 9042 Estado Colaborador 1 199
     
    Hola,
    intenta con..
     Columns("K").NumberFormat = "dd/mm/yyyy"

    ¡A+!
    --
    La experiencia instruye más seguramente que el consejo. (André Gide)
    Si te chocas con una olla y suena vacía, no necesariamente es la olla la que está vacía. ;-)(Confucio)
    0
  4. Nicoroth Mensajes publicados 55 Estado Miembro
     
    Estoy viendo lo que puedo hacer.
    0
  5. Nicoroth Mensajes publicados 55 Estado Miembro
     
    De hecho, revisé un poco en mi archivo y creo que el problema no está realmente donde pensaba.

    Lo que ocurre en realidad es que tengo estas fechas en la columna K y mucha otra información entre las columnas C y S.

    Mi objetivo es utilizar una función CONCATENATE en la columna B, esta funciona bien excepto para las fechas, porque cuando ejecute el CONCATENATE, la fecha en formato dd/mm/yyyy se convierte en un número de 5 cifras que supongo que es una referencia interna de Excel.

    Ejemplo, la fecha 15/05/2010 de esta forma en la columna K se convierte en 40313 en mi CONCATENATE.

    ¿Por qué? Personalmente no entiendo, ¿hay alguna función que se pueda añadir en el CONCATENATE en el nivel de K3?

    Les doy mi fórmula:

    =CONCATENATE(H3;" ";I3;". ";"Obs: ";L3;" id: ";C3;" Art: ";E3;" Cli: (";M3;"). ";S3;" L. ";;R3;" Unids. FI: ";K3;". FD: ";O3)

    Gracias
    0
  6. picsou
     
    ¿Por qué? Personalmente no entiendo nada, ¿hay alguna función que se pueda añadir en el concatenate a nivel del K3?
    0
  7. lermite222 Mensajes publicados 9042 Estado Colaborador 1 199
     
    Sí, la fecha se convierte en fecha serial, un número que comienza en el año 01/01/1900.
    Puedes usar ese número como una fecha formateando la columna, o con DateValue si es en VBA.
    Y eso es lo mejor, ya que también puedes mostrarlo como quieras con "Format".
    ¡Hasta luego!
    --
    La experiencia enseña con más certeza que el consejo. (André Gide)
    Si te golpeas con una olla y suena hueca, no necesariamente es la olla la que está vacía. ;-)(Confucio)
    0