Crear una macro para convertir números en fecha...

Tengo escrita una columna con fechas, pero en formato personalizado a efectos de simplificar la carga de datos, el formato es "00-00-11" y sólo escribo el día y el mes, por ejemplo "1008" para que se vea "10-08-11".
El problema es que luego necesito usar las fórmulas para trabajar con fechas, como "ordenar" y demás.
Mi objetivo es armar una macro de modo tal que al escribir "1008", Excel me devuelva en la misma celda "01-08-11" pero en formato fecha.
No sé nada programación, pero he buscado en internet y encontré ésta macro:
Sub Fechita()
Dim celda As Range
For Each celda In ActiveSheet.Range("A1:A3")
If IsDate(celda) = True Or celda = 0 Or celda = "" Then
GoTo salto
End If
celda = CDate(Format(Right(celda, 2) & "-" & Left(celda, 2), "mm-dd-2011"))
salto:
Next
End Sub
Que está muy cerquita de funcionar para mi necesidad, el único problema es cuando el día tiene un sólo dígito, ahí ya no funciona. Y es ésa la ayuda que quisiera perdirles, si me la podrían modificar o crear otra para que funcione.
Desde ya les agradezco mucho su atención y los felicito por todo su conocimiento.
Atentamente.
Santiago Dip.-

1 respuesta

Respuesta
1
Te ajusto tu rutina, aunque en mi configuración con un formato personalizado puedo ordenar y sacar cálculos con fechas que ingreso sin separadores.
Sub Fechita()
Dim celda As Range
For Each celda In ActiveSheet.Range("A2:A4")
If IsDate(celda) = True Or celda = 0 Or celda = "" Then
GoTo salto
End If
'evalúo el largo del contenido de la celda y segùn eso obtengo los caracteres
largo = Len(celda)
If largo = 4 Then
celda = CDate(Format(Right(celda, 2) & "-" & Left(celda, 2), "mm-dd-2011"))
Else
celda = CDate(Format(Right(celda, 2) & "-" & Left(celda, 1), "mm-dd-2011"))
End If
salto:
Next
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas