Como hacer que una macro en excel reconozca una fecha
Hola experto:
Recurro a ti para solicitar de tu valiosa ayuda en lo siguiente:
Estoy escribiendo una macro la cual se basa en un criterio de fecha de si es menor al 01/01/2009 me inserte una fila debajo de esta. Por ejemplo tengo fechas en la columna A y deberá recorrer todo el rango ocupado y si encuentra una fecha que sea menor a la fecha que te mencioné inserte toda una fila debajo de esa fecha, pero en lo que estoy atorado es en el hecho de que no sé cómo hacer que en el código VBA se reconozca la fecha como valor ya que yo lo meto así:
Range("A2").Select
fecha = 1 / 1 / 2009
Do While ActiveCell <> ""
If ActiveCell.Value < fecha Then
ActiveCell.EntireRow.Select
Selection.Insert Shift:=xlDown
End If
ActiveCell.Offset(1, 0).Select
Loop
Pero cuando llega a la linea en donde evalúa la fecha aunque se cumpla la condición no reconoce el valor de la celda como fecha y no hace lo que dice el código, creo que el error está en alguna de las dos filas que resalto en negrita no se si tengo que darle un formato especial a mi variable fecha o la estoy declarando mal. El formato de celdas que tengo en mi hoja es "dd/mm/aaaa" y creo que no es compatible con el formato del código por eso no reconoce el valor.
Podrías ayudarme por favor en decirme cómo hacerle para que la macro unifique los formatos de fechas y puedan ser comparables. De antemano agradezco mucho tu atención.
Recurro a ti para solicitar de tu valiosa ayuda en lo siguiente:
Estoy escribiendo una macro la cual se basa en un criterio de fecha de si es menor al 01/01/2009 me inserte una fila debajo de esta. Por ejemplo tengo fechas en la columna A y deberá recorrer todo el rango ocupado y si encuentra una fecha que sea menor a la fecha que te mencioné inserte toda una fila debajo de esa fecha, pero en lo que estoy atorado es en el hecho de que no sé cómo hacer que en el código VBA se reconozca la fecha como valor ya que yo lo meto así:
Range("A2").Select
fecha = 1 / 1 / 2009
Do While ActiveCell <> ""
If ActiveCell.Value < fecha Then
ActiveCell.EntireRow.Select
Selection.Insert Shift:=xlDown
End If
ActiveCell.Offset(1, 0).Select
Loop
Pero cuando llega a la linea en donde evalúa la fecha aunque se cumpla la condición no reconoce el valor de la celda como fecha y no hace lo que dice el código, creo que el error está en alguna de las dos filas que resalto en negrita no se si tengo que darle un formato especial a mi variable fecha o la estoy declarando mal. El formato de celdas que tengo en mi hoja es "dd/mm/aaaa" y creo que no es compatible con el formato del código por eso no reconoce el valor.
Podrías ayudarme por favor en decirme cómo hacerle para que la macro unifique los formatos de fechas y puedan ser comparables. De antemano agradezco mucho tu atención.
2 respuestas
Respuesta de paramisolo
1
Respuesta de Juan Carlos González Chavarría
1