Gene está buscando una forma de eliminar rápidamente datos de una hoja de trabajo según la fecha de una columna en particular. Si la fecha es anterior a la actual (la fecha ha pasado), la fila debe eliminarse.

Esto se puede hacer fácilmente con una macro. Todo lo que necesita hacer es hacer que la macro recorra los datos y compare la fecha en cada fila con la fecha de hoy. Si la fecha es menor que hoy, entonces se usa el método Delete en el objeto EntireRow.

Sub DeleteRows1()

Dim x As Long     Dim iCol As Integer

iCol = 7 'Filter all on Col G

For x = Cells(Cells.Rows.Count, iCol).End(xlUp).Row To 2 Step -1         If Cells(x, iCol).Value < Date Then             Cells(x, iCol).EntireRow.Delete         End If     Next End Sub

En este ejemplo, la macro verifica la columna G (en la variable iCol) para la fecha. Si su fecha está en una columna diferente, entonces debe realizar el cambio en la variable. Dependiendo de la cantidad de filas de datos en su hoja de trabajo, la macro también puede tardar bastante en ejecutarse.

Si nota un retraso en el rendimiento, es posible que desee utilizar un enfoque diferente. El siguiente ejemplo usa las capacidades de Autofiltro de Excel para filtrar primero los datos para mostrar solo los datos antiguos y luego borra esas filas.

Sub DeleteRows2()

Dim Dates As Range     Dim nRows As Double     Dim currDate As Variant

'Format dates as text     Range("Dates").NumberFormat = "@"

'Today's date in number format     currDate = CDbl(Date)

Range("Dates").AutoFilter Field:=1, _       Criteria1:="<" & currDate     nRows = Range("Dates").Rows.Count     Rows("2:" & nRows).Select     Selection.Delete Shift:=xlUp     Range("Dates").AutoFilter     Range("Dates").NumberFormat = "m/d/yyyy"

Range("C2").Select End Sub

Esta macro supone que ha dado el paso de asignar un nombre a su rango de datos. Seleccione todas las celdas de su tabla de datos, incluida cualquier fila de encabezado, y asígnele el nombre «Fechas». Cuando ejecuta la macro, utiliza este rango como destino del Autofiltro.

_Nota: _

Si desea saber cómo usar las macros descritas en esta página (o en cualquier otra página de los sitios ExcelTips), he preparado una página especial que incluye información útil.

link: / excelribbon-ExcelTipsMacros [Haga clic aquí para abrir esa página especial en una nueva pestaña del navegador].

ExcelTips es su fuente de formación rentable en Microsoft Excel.

Este consejo (10783) se aplica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 y Excel en Office 365. Puede encontrar una versión de este consejo para la interfaz de menú anterior de Excel aquí:

link: / excel-Deleting_Old_Data_from_a_Worksheet [Eliminando datos antiguos de una hoja de trabajo].