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

Filter aus Userform ansprechen

Forumthread: Filter aus Userform ansprechen

Filter aus Userform ansprechen
25.04.2017 15:52:36
astaldo
Hallo zusammen
Mich stellt mein UF gerade vor ein kleines Problem. Im UF habe ich 2 Textboxen, nach welchen jeweils in einer Tabelle gefiltert werden soll. Wenn beide Boxen ausgefüllt sind, klappt dies auch wunderbar. Nun muss ich aber noch die Option haben, wahlweise einen der beiden Filter nicht anzusprechen, indem ich die Textbox einfach leer lasse. Habt ihr mir hier einen Hinweis? Einige Dinge habe ich schon versucht und bin zur Zeit auf dem folgenden Stand:
Private Sub CommandButton2_Click()
'Filter für Bau
If UserForm1.TextBox1.Value  " " Then
Range("tabelle1").AutoFilter Field:=1, Criteria1:=UserForm1.TextBox1.Value
End If
'Filter für Abteilung
If UserForm1.TextBox2.Value  " " Then
Range("tabelle1").AutoFilter Field:=2, Criteria1:=UserForm1.TextBox2.Value
End If
'Clear Textboxen und beenden
Range("A1").Select
UserForm1.TextBox1.Text = " "
UserForm1.TextBox2.Text = " "
Unload UserForm1
End Sub
Das ganze läuft auf einem MAC-System und soll voraussichtlich auch nur darauf ausgeführt werden.
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Filter aus Userform ansprechen
25.04.2017 16:21:19
Nepumuk
Hallo,
nicht " " sondern ""
und dann natürlich:
UserForm1.TextBox1.Text = ""
Gruß
Nepumuk
AW: Filter aus Userform ansprechen
25.04.2017 16:56:47
Astaldo
Vielen Dank Nepumuk
Das war der Facepalm der Tages. Schmerzt ja schon ein wenig, dass ich das übersehen konnte... Text hatte ich auch mal noch drin ursprünglich. Hab es aber wieder verschlimmbessert.
Nochmals danke für deine Hilfe.
Anzeige
Anzeige

Infobox / Tutorial

Filter aus Userform ansprechen in Excel


Schritt-für-Schritt-Anleitung

  1. Öffne den Visual Basic for Applications (VBA) Editor in Excel, indem Du ALT + F11 drückst.
  2. Füge eine Userform hinzu:
    • Klicke mit der rechten Maustaste auf "VBAProject (DeineDatei.xlsx)" und wähle "Einfügen" > "UserForm".
  3. Füge zwei Textboxen hinzu:
    • Ziehe die Textboxen aus der Toolbox auf die Userform.
  4. Füge einen CommandButton hinzu:
    • Diesen Button verwenden wir, um den Filter anzuwenden.
  5. Füge den folgenden VBA-Code in das Codefenster der Userform ein:

    Private Sub CommandButton2_Click()
       'Filter für Bau
       If UserForm1.TextBox1.Value <> "" Then
           Range("tabelle1").AutoFilter Field:=1, Criteria1:=UserForm1.TextBox1.Value
       End If
       'Filter für Abteilung
       If UserForm1.TextBox2.Value <> "" Then
           Range("tabelle1").AutoFilter Field:=2, Criteria1:=UserForm1.TextBox2.Value
       End If
       'Clear Textboxen und beenden
       Range("A1").Select
       UserForm1.TextBox1.Text = ""
       UserForm1.TextBox2.Text = ""
       Unload UserForm1
    End Sub

    Achte darauf, dass Du die Klammer im Vergleichsoperator korrekt verwendest (<> anstelle von !=).


Häufige Fehler und Lösungen

  • Fehler: Filter funktioniert nicht, wenn Textbox leer ist.

    • Lösung: Stelle sicher, dass Du den Vergleichsoperator korrekt verwendest. Es sollte <> "" sein, um zu prüfen, ob die Textbox nicht leer ist.
  • Fehler: Der Filter wird nicht zurückgesetzt.

    • Lösung: Achte darauf, dass Du die Textboxen mit UserForm1.TextBox1.Text = "" zurücksetzt und nicht mit einem Leerzeichen.

Alternative Methoden

Eine alternative Methode zur Filterung von Daten in einer Tabelle ist die Verwendung von Dropdown-Listen in Deiner Userform. Anstatt Textboxen zu verwenden, kannst Du Kombinationsfelder (ComboBox) nutzen, um die Auswahl zu erleichtern. Dies minimiert Fehler und sorgt für eine bessere Benutzererfahrung.


Praktische Beispiele

Angenommen, Du arbeitest mit einer Tabelle namens "tabelle1", die folgende Spalten hat:

  • Spalte 1: Bau
  • Spalte 2: Abteilung

Wenn Du nun in der Userform in der ersten Textbox "Bau A" und in der zweiten Textbox "IT" eingibst und den Button drückst, wird die Tabelle gefiltert, sodass nur die Zeilen angezeigt werden, die diesen Kriterien entsprechen. Wenn Du eine der Textboxen leer lässt, wird der entsprechende Filter nicht angewandt.


Tipps für Profis

  • Nutze Fehlerbehandlung im Code: Füge On Error Resume Next am Anfang Deines Codes hinzu, um unerwartete Fehler abzufangen.

  • Optimiere die Performance: Wenn Du mit großen Datenmengen arbeitest, kannst Du das AutoFilter anpassen, um nur die sichtbaren Zellen zu bearbeiten, was die Performance steigern kann.

  • Gestalte die Userform benutzerfreundlich: Füge Beschriftungen hinzu, um den Benutzern klarzumachen, welche Informationen sie eingeben sollen.


FAQ: Häufige Fragen

1. Wie kann ich mehrere Filter gleichzeitig anwenden?
Wenn Du mehrere Filter gleichzeitig anwenden möchtest, stelle sicher, dass Du alle Textboxen überprüfst und die entsprechenden Filter anwendest, wie im Code beschrieben.

2. Ist dieser Code auch für Windows-Versionen von Excel geeignet?
Ja, der bereitgestellte VBA-Code ist sowohl für die Mac- als auch für die Windows-Version von Excel geeignet, solange Du den Code im VBA-Editor entsprechend einfügst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige