VBA: Filtern mit Größer Gleich und Kleiner Gleich in Excel
Schritt-für-Schritt-Anleitung
Um in Excel mit VBA Filter zu setzen, die sowohl „größer gleich“ als auch „kleiner gleich“ berücksichtigen, folge diesen Schritten:
-
Öffne den VBA-Editor: Drücke ALT
+ F11
, um den Visual Basic for Applications (VBA) Editor zu öffnen.
-
Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf „VBAProject (DeineDatei)“ und wähle „Einfügen“ > „Modul“.
-
Schreibe den VBA-Code: Füge den folgenden Code in das Modul ein:
Sub FilterGroesserKleiner()
Selection.AutoFilter Field:=5, Criteria1:=">=" & CDbl(Cells(8, 5)), _
Operator:=xlAnd, Criteria2:="<=" & CDbl(Cells(8, 6))
End Sub
-
Anpassen der Zellreferenzen: Stelle sicher, dass die Zellreferenzen in Cells(8, 5)
und Cells(8, 6)
auf die richtigen Zellen zeigen, die die Kriterien enthalten.
-
Führe das Makro aus: Schließe den VBA-Editor und kehre zu Excel zurück. Drücke ALT
+ F8
, wähle das Makro „FilterGroesserKleiner“ und klicke auf „Ausführen“.
Häufige Fehler und Lösungen
Alternative Methoden
Eine alternative Methode, um die Filterung in Excel durchzuführen, ist die Verwendung der Excel-Formel direkt in den Zellen:
- Verwende die Formel: Du kannst auch die Formel
=UND(A1>=E8; A1<=F8)
in eine Hilfsspalte einfügen, um zu überprüfen, ob die Bedingungen erfüllt sind.
- Filtere nach der Hilfsspalte: Setze dann einen Filter auf diese Hilfsspalte, um nur die Zeilen anzuzeigen, die
WAHR
zurückgeben.
Praktische Beispiele
Angenommen, Du möchtest Daten in Spalte E filtern, die größer oder gleich dem Wert in Zelle E8 und kleiner oder gleich dem Wert in Zelle F8 sind. Der VBA-Code sieht so aus:
Sub BeispielFilter()
Selection.AutoFilter Field:=5, Criteria1:=">=" & Cells(8, 5).Value, _
Operator:=xlAnd, Criteria2:="<=" & Cells(8, 6).Value
End Sub
Du kannst diesen Code anpassen, um auf andere Spalten oder Kriterien zuzugreifen.
Tipps für Profis
-
Verwendung von Variablen: Anstatt Zellreferenzen direkt im Code zu verwenden, kannst Du Variablen definieren, um den Code übersichtlicher zu gestalten:
Dim startWert As Double
Dim endWert As Double
startWert = CDbl(Cells(8, 5).Value)
endWert = CDbl(Cells(8, 6).Value)
Selection.AutoFilter Field:=5, Criteria1:=">=" & startWert, _
Operator:=xlAnd, Criteria2:="<=" & endWert
-
Verwendung von xlOr
: Wenn Du eine alternative Logik benötigst, kannst Du den Operator xlOr
verwenden, um die Filterbedingungen zu ändern.
FAQ: Häufige Fragen
1. Wie kann ich den Filter zurücksetzen?
Um den Filter zurückzusetzen, kannst Du einfach ActiveSheet.AutoFilterMode = False
verwenden.
2. Was bedeutet der Operator xlAnd
?
Der Operator xlAnd
sorgt dafür, dass beide Kriterien gleichzeitig erfüllt sein müssen, damit ein Datensatz angezeigt wird.
3. Kann ich auch mit Texten filtern?
Ja, Du kannst auch Textwerte filtern, indem Du die Kriterien entsprechend anpasst. Beispielsweise: Criteria1:="=TextWert"
.
4. Wie gehe ich mit leeren Zellen um?
Wenn Du sicherstellen möchtest, dass leere Zellen nicht in das Filterergebnis einfließen, musst Du eine zusätzliche Bedingung hinzufügen, die leere Zellen ausschließt.