Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Filter über InputBox "beginnt mit..."

Filter über InputBox "beginnt mit..."
26.01.2005 19:10:47
Tarzan
Hallo,
in Spalte B beginnend ab Zeile 5 stehen Auftrags-Nummern (z.B.: K 1234/1) in Spalte C ebenfalls beginnend ab Zeile 5 stehen Gewichte.
Nun möchte ich mittels Makro (InputBox) einen Filter auf Spalte B setzen. Das Kriterium soll benutzerdefiniert sein: beginnt mit...
Mit dem zweiten Makro (ebenfalls InputBox) möchte ich einen Filter auf Spalte C setzen. Das Kriterium soll benutzerdefiniert sein: enthält...
Hab das Archiv schon durchstöbert, aber keine benutzerdefinierten Filter mittels Makro/InputBox gefunden.
Bin über jeden Vorschlag/Lösung dankbar.
Vielen Dank für Eure Bemühungen.
Gruß,
Tarzan
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Filter über InputBox "beginnt mit..."
26.01.2005 19:40:41
Josef
Hallo Tarzan! (realnames sind hier üblich und erwünscht!)
VBA gut?

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

Gruß Sepp
P.S.: Rückmeldung nicht vergessen!
Anzeige
AW: Filter über InputBox "beginnt mit..."
27.01.2005 00:39:56
Tarzan
Hallo Sepp,
sorry, hab was falsches ausgewählt, VBA eher schlecht.
Hab das Makro jetzt eingebaut, funktioniert super. Danke.
Ist es auch möglich, dass nach dem ausführen des Makros nicht dieser "Filter-Pfeil" bzw. "Filter-Symbol" sich in der Zelle B5 befindet. Möchte die ganze Darstellung ohne "Filter-Symbol" in der Zelle.
Gibt es dafür auch ne´ Lösung?
Vielen Dank.
Stefan (alias Tarzan)
Anzeige
AW: Filter über InputBox "beginnt mit..."
27.01.2005 17:56:00
Josef
Hallo Stefan!
Das geht auch!
Ergänze die beiden Zeilen in dieser Art!

rng.AutoFilter Field:=1, Criteria1:=krit1 & "*", Visibledropdown:=False
rng.AutoFilter Field:=2, Criteria1:="*" & krit2 & "*", Visibledropdown:=False

Gruß Sepp
P.S.: Rückmeldung nicht vergessen!
Anzeige
AW: Filter über InputBox "beginnt mit..."
27.01.2005 21:24:59
Stefan
hallo sepp,
funktionier super, vielen dank. heb´ den filter mit folgendem code wieder auf:

Sub autofilter_reset()
If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData
End Sub

nochmal vielen dank für die schnelle hilfe.
gruß,
stefan
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

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:

  1. Öffne den VBA-Editor:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Erstelle ein neues Modul:

    • Klicke mit der rechten Maustaste auf "VBAProject (DeinWorkbookName)" und wähle Einfügen > Modul.
  3. 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
  4. 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.
  5. 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:

  1. Wähle die Zellen in Spalte B und C aus.
  2. Gehe zu Daten > Filter.
  3. Klicke auf den Dropdown-Pfeil in Spalte B und wähle Textfilter > Beginnt mit....
  4. 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

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige