Gene sucht nach einer Möglichkeit, Daten basierend auf dem Datum in einer bestimmten Spalte schnell aus einem Arbeitsblatt zu löschen. Wenn das Datum älter als heute ist (das Datum ist vergangen), sollte die Zeile gelöscht werden.

Dies kann ziemlich einfach mit einem Makro durchgeführt werden. Alles, was Sie tun müssen, ist der Makroschritt durch die Daten und der Vergleich des Datums in jeder Zeile mit dem heutigen Datum. Wenn das Datum kleiner als heute ist, wird die Delete-Methode für das EntireRow-Objekt verwendet.

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 diesem Beispiel überprüft das Makro die Spalte G (in der iCol-Variablen) auf das Datum. Wenn sich Ihr Datum in einer anderen Spalte befindet, sollten Sie die Änderung an der Variablen vornehmen. Abhängig von der Anzahl der Datenzeilen in Ihrem Arbeitsblatt kann die Ausführung des Makros auch eine Weile dauern.

Wenn Sie eine Leistungsverzögerung feststellen, möchten Sie möglicherweise einen anderen Ansatz verwenden. Im folgenden Beispiel werden die AutoFilter-Funktionen von Excel verwendet, um zuerst die Daten zu filtern, um nur die alten Daten anzuzeigen, und diese Zeilen dann zu löschen.

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

Dieses Makro setzt voraus, dass Sie Ihrem Datenbereich einen Namen zugewiesen haben. Wählen Sie alle Zellen in Ihrer Datentabelle aus – einschließlich aller Überschriftenzeilen – und geben Sie ihr den Namen „Datumsangaben“. Wenn Sie das Makro ausführen, wird dieser Bereich als Ziel für den AutoFilter verwendet.

_Hinweis: _

Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der ExcelTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.

ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.

Dieser Tipp (3384) gilt für Microsoft Excel 97, 2000, 2002 und 2003. Eine Version dieses Tipps für die Multifunktionsleistenschnittstelle von Excel (Excel 2007 und höher) finden Sie hier: