Zeilen basierend auf Datum in Excel löschen
Schritt-für-Schritt-Anleitung
-
Öffne deine Excel-Datei und gehe zu dem Tabellenblatt, in dem du die Zeilen löschen möchtest.
-
Drücke ALT + F11, um den VBA-Editor zu öffnen.
-
Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.
-
Füge den folgenden VBA-Code ein:
Sub Loeschen()
Dim lngZeile As Long
Dim lngLetzte As Long
With Worksheets("Tabelle1") ' Name des Arbeitsblatts anpassen
lngLetzte = .Cells(.Rows.Count, 15).End(xlUp).Row ' Ermittelt die letzte Zeile in Spalte O
For lngZeile = lngLetzte To 2 Step -1
If IsDate(.Cells(lngZeile, 15).Value) Then
If Year(.Cells(lngZeile, 15).Value) < Year(Date) Then
.Rows(lngZeile).Delete ' Löscht die Zeile, wenn das Datum älter ist
End If
End If
Next lngZeile
End With
End Sub
-
Schließe den VBA-Editor und gehe zurück zu Excel.
-
Weise das Makro einer Schaltfläche zu, um es einfach auszuführen.
Häufige Fehler und Lösungen
-
Problem: Einige Zeilen werden nicht gelöscht, obwohl sie ein Datum enthalten.
- Lösung: Stelle sicher, dass die Zellen in Spalte O tatsächlich Datumswerte sind und nicht als Text formatiert sind. Der obige Code prüft auch, ob eine Zelle ein Datum enthält.
-
Problem: Das Makro löscht auch leere Zeilen.
- Lösung: Achte darauf, dass der Code nur Zeilen löscht, wenn ein Datum vorhanden ist. Der Code oben berücksichtigt dies.
Alternative Methoden
Eine alternative Methode, um Zeilen basierend auf einem Datum zu löschen, ist die Verwendung von Excel-Funktionen:
- Filtere die Daten in Spalte O nach dem Jahr.
- Markiere die gefilterten Zeilen und drücke
Strg + - (Minus), um sie zu löschen.
- Setze den Filter zurück, um alle verbleibenden Daten anzuzeigen.
Diese Methode ist handlicher, wenn du nicht ständig das Makro ausführen möchtest.
Praktische Beispiele
Angenommen, du hast folgende Daten in Spalte O:
| O |
| 01.01.2020 |
| 15.05.2021 |
| 10.12.2022 |
|
| 01.01.2019 |
Nach dem Ausführen des Makros werden die Zeilen mit den Daten 01.01.2020, 15.05.2021 und 01.01.2019 gelöscht, sofern das aktuelle Jahr 2022 ist.
Tipps für Profis
-
Verwende Application.ScreenUpdating = False am Anfang des Makros, um die Bildschirmaktualisierung während der Ausführung zu deaktivieren. Das beschleunigt den Vorgang erheblich.
Application.ScreenUpdating = False
' Dein Code hier
Application.ScreenUpdating = True
-
Teste dein Makro immer in einer Kopie deiner Datei, um ungewollte Datenverluste zu vermeiden.
FAQ: Häufige Fragen
1. Wie kann ich das Makro automatisch beim Öffnen der Datei ausführen?
Du kannst das Makro mit der Workbook_Open-Ereignisprozedur verknüpfen. Füge den Code in das DieseArbeitsmappe-Modul ein.
2. Funktioniert dieser Code in jeder Excel-Version?
Ja, der Code ist in den meisten modernen Excel-Versionen, einschließlich Excel 2016 und Excel 365, anwendbar. Achte darauf, dass Makros in deiner Excel-Anwendung aktiviert sind.