VBA für Datumsgesteuertes Löschen von Zeilen in Excel
Schritt-für-Schritt-Anleitung
Um eine Zeile in Excel zu löschen, wenn das Datum in einer bestimmten Spalte größer als ein eingegebenes Datum ist, kannst du folgenden VBA-Code verwenden. Diese Anleitung basiert auf den Diskussionen im Forum und bietet dir eine klare Schritt-für-Schritt-Anleitung.
- Öffne Excel und drücke
ALT + F11
, um den VBA-Editor zu öffnen.
- Klicke auf
Einfügen
> Modul
, um ein neues Modul zu erstellen.
- Kopiere den folgenden Code in das Modul:
Sub Lösche_Datum()
Dim TB As Worksheet, Ez As Integer, SP As Integer, LR As Double, Datum As Date
Set TB = Sheets("Tabelle1")
Ez = 2 'ab Zeile
SP = 5 'Spalte mit Datum
Datum = InputBox("Grenzdatum?", "Löschen Datum", DateValue("01/01/2018"))
If TB.AutoFilterMode Then TB.AutoFilterMode = False ' Autofilter ausschalten
With TB
If WorksheetFunction.CountIf(.Columns(SP), Datum) > 0 Then 'sind überhaupt Daten da?
.Columns(SP).AutoFilter
.Columns(SP).AutoFilter Field:=1, Criteria1:=">" & CDbl(Datum), Operator:=xlAnd
LR = .Cells(.Rows.Count, SP).End(xlUp).Row 'letzte Zeile der Spalte
.Rows(Ez).Resize(LR - Ez + 1).Delete xlUp 'Zeilen löschen
.AutoFilterMode = False
End If
End With
End Sub
- Schließe den VBA-Editor und kehre zu deinem Arbeitsblatt zurück.
- Führe das Makro aus, indem du
ALT + F8
drückst, das Makro auswählst und auf Ausführen
klickst.
Häufige Fehler und Lösungen
Alternative Methoden
Wenn du eine einfachere Methode bevorzugst, kannst du auch die Filterfunktion in Excel nutzen:
- Wähle die gesamte Tabelle aus.
- Klicke auf
Daten
> Filter
.
- Verwende die Datumsspalte, um die Daten nach deinem gewünschten Datum zu filtern.
- Markiere die gefilterten Zeilen, klicke mit der rechten Maustaste und wähle
Zeilen löschen
.
Diese Methode ist weniger automatisiert, kann aber hilfreich sein, wenn du keine VBA-Kenntnisse hast.
Praktische Beispiele
Angenommen, du hast folgende Daten in Spalte E:
Datum |
01/01/2022 |
15/02/2022 |
10/01/2023 |
25/12/2021 |
Wenn du das Makro ausführst und als Grenzdatum den 01/01/2022 angibst, werden die Zeilen mit den Daten 15/02/2022 und 10/01/2023 gelöscht, während die Zeilen mit 01/01/2022 und 25/12/2021 erhalten bleiben.
Tipps für Profis
- Eingabedaten validieren: Füge eine Überprüfung hinzu, um sicherzustellen, dass das eingegebene Datum im richtigen Format ist. Dies kann mit
IsDate
erfolgen.
If Not IsDate(Datum) Then
MsgBox "Bitte ein gültiges Datum eingeben."
Exit Sub
End If
- Fehlerbehandlung: Implementiere Fehlerbehandlung im Code, um Laufzeitfehler abzufangen und zu behandeln.
On Error GoTo Fehler
' Dein Code hier
Exit Sub
Fehler:
MsgBox "Ein Fehler ist aufgetreten: " & Err.Description
FAQ: Häufige Fragen
1. Frage
Wie kann ich das Datum im anderen Format eingeben?
Um das Datum im deutschen Format TT.MM.JJJJ einzugeben, musst du sicherstellen, dass das Datumsformat in deiner Excel-Installation korrekt eingestellt ist. Du kannst dies in den Excel-Optionen ändern.
2. Frage
Kann ich das Makro für mehrere Spalten gleichzeitig verwenden?
Ja, du kannst den Code anpassen, um mehrere Spalten zu durchsuchen. Du musst jedoch sicherstellen, dass die Logik für die Filterung und das Löschen entsprechend angepasst wird.