Conversión de cadena a fecha (VBA)
Resueltoccm81 Mensajes publicados 11033 Estado Miembro -
Hola,
Tengo una columna de Excel "vencimiento" cuyo valor se presenta en la forma ddMM, es decir, 101 para el 01/01, 2412 para el 24/12, etc...
Quiero transformar eso en una fecha del año en curso (sin necesariamente mostrarla), para poder hacer un cálculo en relación a la fecha de hoy.
Sin embargo, no logré realizar la conversión. ¿Podrías ayudarme? Gracias.
Detalles:
El objetivo es convertir este vencimiento en una fecha para, posteriormente, filtrar automáticamente al abrir, las filas que tengan un vencimiento dentro de los 30 días a partir de la fecha de hoy.
Como un CDate o DateFormat directo no funciona (calcula el 10/04/1900 para el vencimiento 101), pensé en algo como esto, pero no funciona (sin contar que el Left será erróneo a menudo):
Sub Auto_Open() For c = 7 To Cells(Rows.Count, 2).End(xlUp).Row D = Right(c, 2) E = Left(c, 2) CDate(Range(c) = E & "/" & D) .... Next c End Sub
2 respuestas
-
Hola
Prueba esto, tu "fecha" siendo de tipo entero
Public Function cvdate(d As Integer) As Date Dim j As Long, m As Long, a As Long, cvd As String a = Year(Date) m = d Mod 100 j = d \ 100 cvd = CDate(j & "/" & m & "/" & a) cvdate = cvd End Function
o esto, la fecha siendo de tipo texto
Public Function cvsdate(d As String) As Date Dim j As Long, m As Long, a As Long, cvd As String a = Year(Date) m = Right(d, 2) j = Left(d, Len(d) - 2) cvd = CDate(j & "/" & m & "/" & a) cvsdate = cvd End Function
Saludos
-