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 -
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,!
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
-
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, -
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... -
hola
con la fórmula de Pilas31 que saludo
quizásjjmmaaaa = "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