Fecha en formato ddmmaaaa (sin separadores)

Resuelto
areskip Mensajes publicados 2 Estado Miembro -  
michel_m Mensajes publicados 18903 Fecha de registro   Estado Colaborador Última intervención   -
Hola a todos,

Estoy atascado con fechas en formato ddmmyyyy sin separadores.
¿Cómo hacer para transformarlas en fechas válidas en VBA?
He probado cortarlas en pedacitos para intercalar "/"… ¿pero quizá existe un método más simple?

gracias de antemano si tenéis alguna idea,!

3 respuestas

  1. pilas31 Mensajes publicados 1878 Estado Colaborador 648
     
    Hola,

    aquí tienes una posibilidad:

    date_valide = CDate(Mid(jjmmaaaa, 3, 2) & "/" & Mid(jjmmaaaa, 1, 2) & "/" & Mid(jjmmaaaa, 5, 4))

    La variable jjmmaaaa contiene la famosa fecha. Hay que recordar que en VBA es un formato inglés y por eso los días y los meses están invertidos.

    Quizá con la instrucción Format() haya otras posibilidades

    --

    Cordialmente,
    0
  2. areskip Mensajes publicados 2 Estado Miembro
     
    Gracias pilas31!

    Tuve que adaptar porque el cero de los días no se muestra (1 y no 01).

    Esto da:

    size = Len(Cells(i, j))
    If size = 8 Then date_valide = CDate(Left(Cells(i, j), 2) & "/" & Mid(Cells(i, j), 3, 2) & "/" & Right(Cells(i, j), 4))
    If size = 7 Then date_valide = CDate(Left(Cells(i, j), 1) & "/" & Mid(Cells(i, j), 2, 2) & "/" & Right(Cells(i, j), 4))

    Pero tal vez sea más sencillo mostrando el primer cero...
    0
  3. michel_m Mensajes publicados 18903 Fecha de registro   Estado Colaborador Última intervención   3 320
     
    hola
    con la fórmula de Pilas31 que saludo
    quizás
    jjmmaaaa = "04062014"
    With Range("A1")
    .Value = CDate(Mid(jjmmaaaa, 3, 2) & ""/"&" & Mid(jjmmaaaa, 1, 2) & ""/"&" & Mid(jjmmaaaa, 5, 4))
    .NumberFormat = "dd/mm/yyyy"
    End With

    --
    Michel
    0