Gene sta cercando un modo per eliminare rapidamente i dati da un foglio di lavoro in base alla data in una determinata colonna. Se la data è precedente a quella odierna (la data è passata), la riga dovrebbe essere eliminata.

Questo può essere fatto abbastanza facilmente con una macro. Tutto quello che devi fare è che la macro passi attraverso i dati e confronti la data in ogni riga con la data odierna. Se la data è inferiore a quella odierna, il metodo Delete viene utilizzato sull’oggetto InteraRow.

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

In questo esempio, la macro controlla la colonna G (nella variabile iCol) per la data. Se la tua data si trova in una colonna diversa, dovresti apportare la modifica alla variabile. A seconda del numero di righe di dati nel foglio di lavoro, l’esecuzione della macro potrebbe richiedere del tempo.

Se noti un ritardo nelle prestazioni, potresti voler utilizzare un approccio diverso. Nell’esempio seguente vengono utilizzate le funzionalità del filtro automatico di Excel per filtrare prima i dati in modo da mostrare solo i dati precedenti e quindi eliminare tali righe.

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

Questa macro presume che tu abbia eseguito il passaggio di assegnare un nome all’intervallo di dati. Seleziona tutte le celle nella tabella dei dati, inclusa qualsiasi riga di intestazione, e assegnale il nome “Date”. Quando si esegue la macro, utilizza questo intervallo come destinazione per il filtro automatico.

_Nota: _

Se desideri sapere come utilizzare le macro descritte in questa pagina (o in qualsiasi altra pagina dei siti ExcelTips), ho preparato una pagina speciale che include informazioni utili.

ExcelTips è la tua fonte di formazione economica su Microsoft Excel.

Questo suggerimento (3384) si applica a Microsoft Excel 97, 2000, 2002 e 2003. Puoi trovare una versione di questo suggerimento per l’interfaccia a nastro di Excel (Excel 2007 e versioni successive) qui: