Individueller Autofilter mit VBA

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
UserForm TextBox
Bild

Betrifft: Individueller Autofilter mit VBA
von: Thomasey
Geschrieben am: 30.11.2015 08:29:51

Hallo zusammen,
mittels der Userform soll eine Tabelle (Tabellenblatt "Daten") gefiltert werden.
Im Tabllenblatt HT ( steht für Hilfstabelle) sind die Spaltenüberschriften beschreibend dargestellt.
Beispiel Q1 entspricht dem Umsatz, Q2 dem Gewinn usw.
Mit der Userfom sollen die Daten im Tabellenblatt "Daten" nun individuell gfiltert werden.
Die Combobox enthält die Kritierien (Row Soure) aus der Hilfstabelle.
Die Userform ist, denke, ich selbst erklärend (anbei die Datei).
Funktionieren soll es so, dass in der Userform Kriterien frei gewählt werden können, z.B. Umsatz > 10, Gewinn <4
Kann mir jemand dazu den Code für die Userform erstellen?
https://www.herber.de/bbs/user/101890.xlsm
Vielen Dank im Voraus für eure Mühe.
Thomas

Bild

Betrifft: AW: Individueller Autofilter mit VBA
von: fcs
Geschrieben am: 30.11.2015 14:30:06
Hallo Thomas,
es macht eigentlich kaum Sinn, dass man in Userformen in Excel integrierte Funktionen nachprogrammiert.
Hier sollte man dann ggf. mit nicht gebundenen Userformen (Eigenschaft Showmodal = False) arbeiten, so dass man auf das Tabellenblatt wechseln kann ohne das Userform zu schliessen.
Userformen zum Filtern werden hier erst interessant, wenn man ODER Bedingungen für die Kriterien unterschiedlicher Spalten realisieren möchte.
Gruß
Franz

Bild

Betrifft: AW: Individueller Autofilter mit VBA
von: Thomasey
Geschrieben am: 30.11.2015 15:25:42
Hallo Franz,
danke für deine Antwort.
Wie sieht so eine nicht gebundene Userfom mit Eigenschaft Showmodal = False aus? bzw. wie kann ich damit die Filter anwenden?
Schöne Grüße
Thomas

Bild

Betrifft: AW: Individueller Autofilter mit VBA
von: fcs
Geschrieben am: 30.11.2015 15:57:54
Hallo Thomas,
die ungebundene Userform unterscheidet sich optisch nicht. Man kann aber einfach mit der Maus oder Tastenfunktionen zwischen Tabellenblatt und Userform wechseln.
Es gibt 2 Wege eine Userform ungebunden anzuzeigen:
1. Im VBA-Editor wird für das Userform die Eigenschaft "ShowModal" auf False gesetzt.
2. Bei einem normalerweise gebundenen Userform wird das Userform mit dem entsprechenden Parameter gestaret.

Sub UF_anzeigen()
  UserForm1.Show False
End Sub
Gruß
Franz

Bild

Betrifft: AW: Individueller Autofilter mit VBA
von: Thomasey
Geschrieben am: 30.11.2015 16:19:54
Hallo Franz,
das hilft mir leider nicht weiter. Denn dadurch "filtert" sich die Tabelle nicht.
Grüße
Thomas

Bild

Betrifft: AW: Individueller Autofilter mit VBA
von: fcs
Geschrieben am: 30.11.2015 16:40:01
Hallo Thomas,
du musst dann natürlich den Autofilter für daas entsprechende Blatt aktivieren. Dann kannst du auch entsprechende Filter setzen.
Gruß
Franz

Bild

Betrifft: AW: Individueller Autofilter mit VBA
von: Thomasey
Geschrieben am: 30.11.2015 16:50:04
Kannst du ein Beispiel in meine Datei einfügen?

Bild

Betrifft: AW: Individueller Autofilter mit VBA
von: fcs
Geschrieben am: 01.12.2015 01:54:45
Hallo Thomas,
bei Kenntnis-Level Excel-gut
solltest du doch in einem Tabellenblatt via Menü "Daten" den Autofilter einrichten können.
In den Drop-Downs kannst du dann via Zahlfilter oder Eingabe im Suchfeld oder Auswahl in der Liste den Filter einstellen.
https://www.herber.de/bbs/user/101918.xlsm
Gruß
Franz

Bild

Betrifft: AW: Individueller Autofilter mit VBA
von: Thomasey
Geschrieben am: 01.12.2015 08:16:13
Hallo Franz,
dein Vorschlag ist bei einer kleinen Tabelle sicherlich möglich. Meine Datei hat über 1000 Spalten, da ist es mit deiner Lösung sehr umständlich zu filtern. Deshalb wäre ich über eine Lösung dankbar, wie ich sie anfänglich beschrieben habe.
Schöne Grüße
Thomas

Bild

Betrifft: AW: Individueller Autofilter mit VBA
von: fcs
Geschrieben am: 01.12.2015 11:23:01
Hallo Thomas,
bei 1000 Spalten (wer baut denn solche Tabellen?) würde ich das Userform nutzen, um die Spalten, nach denen gefiltert werden soll, per Scroll-Anweisungen auf den Bildschirm zu bringen.
Wenn es nicht mit anderen Einstellungen (z.B. Gliederung) kollidiert dann könnte man auch via Userform Spalten temporär ein-/ausblenden, so dass nur die aktuell relevanten Spalten angezeigt werden.
Wenn du dein bisheriges Konzept mit dem Userform weiterverfolgen willst, dann sprengt es einfach den Rahmen des Forums, es sei denn du findest jemanden der es aus Spass an der Freud programmiert.
1. Die Eingaben müssen geprüft werden.
1.1 Wurde ein Filter (linke Combobox) ausgewählt?
1.1.1 Wenn ja. dann müssen Operator ausgewählt und Wert eingegeben sein.
1.1.2 Wenn Wert nummerisch, dann muss dieser Textbox-Inhalt in eine Zahl gewandelt werden
1.1.3 Die Spalte in Daten zum Wert in der Combobox muss ermittelt/vorgegeben werden
1.1.4 Die Spalte in Daten zum Wert in der Textbox muss ermittelt/vorgegeben werden
Diese Schritte werden für jedes Filter wiederholt und dabei die Daten zur einfacheren Weiterverarbeitung in einem Daten-Array erfasst. Sind die Daten unschlüssig/unvollständig muss das Makro abgebrochen und die Eingabe vervollständigt werden, wobei entsprechende Hinweis-Meldungen angezeigt werden.
2. Alle Datenzeilen in Daten müssen eingeblendet werden
3. In einer Schleife werden alle Datenzeilen abgearbeitet
3.1 Die Daten in der Zeile werden mit den Kriterien verglichen. Dazu werden die im Datenarray gesammelten Filterkriterien in einer Schleife abgearbeitet und der Sichtbar-Status der Zeile ermittelt.
Wichtig dabei ist noch, ob die max. 4 Kriterien als ODER- oder als UND-Kriterium verarbeitet werden sollen.
3.1.1 Werden die Kriterien nicht erfüllt, dann wird die Zeile ausgeblendet.
Gruß
Franz

Bild

Betrifft: AW: Individueller Autofilter mit VBA
von: Thomasey
Geschrieben am: 01.12.2015 11:44:00
Hallo Franz,
genau so wie du es beschreiben hast, bei Punkt 3.1 wäre das Kriterium ein "und", sollte es letztendlich funktionieren.
Weil meine VBA-Kenntnisse zu bescheiden sind, würde ich mich freuen wenn jemand, wie du es sagst, Spass und Freude am Programmieren hat.
Grüße
Thomas

Bild

Betrifft: Na, mal sehen
von: Michael
Geschrieben am: 04.12.2015 14:02:29
Hi zusammen,
ich hab erst die Tage so was Ähnliches gebastelt, nachzulesen hier:
https://www.herber.de/forum/messages/1461711.html
bzw. https://www.herber.de/bbs/user/101995.xls
Ich versuch mal, das an Deine Tabelle anzupassen, wenn ich stillsitzen kann
[schwierig bei: Candy Dulfer Live In Leverkusen Jazztage2009Full Show]
Schöne Grüße,
Michael

Bild

Betrifft: Autofilter, beliebig viele Kriterien
von: Michael
Geschrieben am: 04.12.2015 21:29:59
Hi zusammen,
hier die verallgemeinerte Lösung, die im Prinzip beliebig viele Filterkriterien verarbeiten kann.
Diese sind entweder alle mit UND oder alle mit ODER verknüpft.
Für die Filterung wird die Hilfsspalte S (siehe CONST fs="S") benutzt, das läßt sich auf eine beliebige andere Spalte "rechts draußen" anpassen.
Die Datei: https://www.herber.de/bbs/user/102022.xlsm
Happy Exceling,
Michael

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Individueller Autofilter mit VBA"