Filter über InputBox in Excel: So geht's
Schritt-für-Schritt-Anleitung
Um in Excel mit VBA einen benutzerdefinierten Filter über eine InputBox zu setzen, folge diesen Schritten:
-
Öffne den VBA-Editor:
- Drücke
ALT + F11, um den VBA-Editor zu öffnen.
-
Erstelle ein neues Modul:
- Klicke mit der rechten Maustaste auf "VBAProject (DeinWorkbookName)" und wähle
Einfügen > Modul.
-
Füge den folgenden Code ein:
Sub filterInput()
Dim krit1 As String
Dim krit2 As String
Dim rng As Range
Set rng = Range("B5:C100") ' Bereich anpassen!
krit1 = InputBox("Bitte Kriterium für Spalte B eingeben!", "Kriterium")
If krit1 = "" Then Exit Sub
krit2 = InputBox("Bitte Kriterium für Spalte C eingeben!", "Kriterium")
If krit2 = "" Then Exit Sub
rng.AutoFilter Field:=1, Criteria1:=krit1 & "*"
rng.AutoFilter Field:=2, Criteria1:="*" & krit2 & "*"
End Sub
-
Führe das Makro aus:
- Du kannst das Makro ausführen, indem du im VBA-Editor
F5 drückst oder zurück zu Excel gehst und das Makro über Entwicklertools > Makros auswählst.
-
Optional: Filter-Symbol entfernen:
- Um das Filter-Symbol in der Kopfzeile zu entfernen, füge Folgendes hinzu:
rng.AutoFilter Field:=1, Criteria1:=krit1 & "*", Visibledropdown:=False
rng.AutoFilter Field:=2, Criteria1:="*" & krit2 & "*", Visibledropdown:=False
Häufige Fehler und Lösungen
-
Fehler: Filter funktioniert nicht
- Überprüfe, ob der angegebene Bereich (
Range("B5:C100")) richtig ist und die Daten korrekt formatiert sind.
-
Fehler: InputBox bleibt leer
- Stelle sicher, dass du einen Wert eingibst. Wenn du die Eingabe abbrichst, wird das Makro beendet.
-
Filter-Symbol bleibt sichtbar
- Überprüfe, ob die
Visibledropdown:=False-Option korrekt hinzugefügt wurde.
Alternative Methoden
Falls du die Filterfunktion ohne VBA nutzen möchtest, kannst du auch die integrierten Filter in Excel verwenden:
- Wähle die Zellen in Spalte B und C aus.
- Gehe zu
Daten > Filter.
- Klicke auf den Dropdown-Pfeil in Spalte B und wähle
Textfilter > Beginnt mit....
- Für Spalte C wähle
Textfilter > Enthält....
Diese Methode ist einfach, erfordert jedoch manuelle Eingaben und Anpassungen.
Praktische Beispiele
Angenommen, du hast folgende Daten in Spalte B und C:
| B |
C |
| K 1234/1 |
10 kg |
| K 5678/2 |
15 kg |
| K 1234/3 |
20 kg |
Wenn du das Makro ausführst und "K 1234" für Spalte B und "kg" für Spalte C eingibst, wird Excel nur die Zeilen anzeigen, die mit "K 1234" beginnen und "kg" enthalten.
Tipps für Profis
-
Datenbereich dynamisch anpassen: Verwende Range("B5:C" & Cells(Rows.Count, 2).End(xlUp).Row) um den Bereich automatisch an die Anzahl der Daten anzupassen.
-
Makro optimieren: Füge Fehlerbehandlungsroutinen hinzu, um das Makro robuster zu machen.
-
Makro in Schaltfläche einfügen: Du kannst das Makro einer Schaltfläche zuweisen, um die Ausführung zu erleichtern.
FAQ: Häufige Fragen
1. Wie kann ich das Makro in Excel für Mac verwenden?
Das Makro funktioniert auch in Excel für Mac, solange du den VBA-Editor öffnen und den Code einfügen kannst.
2. Kann ich mehrere Kriterien für den Filter verwenden?
Ja, du kannst mehrere Kriterien angeben, indem du die Criteria1-Option anpasst, z.B. Criteria1:=Array(krit1, krit2) für OR-Bedingungen.
3. Was ist, wenn ich die Filter zurücksetzen möchte?
Verwende den folgenden Code, um alle Filter aufzuheben:
Sub autofilter_reset()
If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData
End Sub