Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1780to1784
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Autofilter mit VBA
18.09.2020 11:39:46
JM
Hallo zusammen,
in einem Excel-Dokument müssen mehrere Schritte mit VBA durchgeführt werden. Das klappt soweit schon gut. Der einzige Schritt der noch nicht wirklich klappt, ist das Setzen von Autofiltern durch das Abrufen der Kriterien aus einem Tabellenblatt. Zur einfacheren Schilderung meines Problems, habe ich mein Anliegen in das nachfolgende Dokument isoliert eingebaut - auch wenn das nachfolgende Dokument zur Endanwendung überhaupt keinen Sinn ergibt.
https://www.herber.de/bbs/user/140309.xlsm
In diesem Dokument sind zwei Tabellenblätter.
Auf Tabellenblatt "Übersicht" soll es dem Benutzer möglich sein mit einer Liste zu arbeiten, welche er beliebig Filtern und Sortieren kann. Nun klickt der Benutzer auf die erste Schalfläche ("1. Aktive Autofilter dokumentieren"). In Wirklichkeit geschehen jetzt verschiedene Zwischenschritte, wofür im Tabellenblatt "Übersicht" die Autofilter zurückgesetzt werden müssen. Damit der Benutzer nach diesen Zwischenschritten wieder seine ursprünglich gefilterte Liste vorfindet, dachte ich mir, seine gesetzten Autofilter in das Tabellenblatt "Autofilter" zwischen zu speichern, was eben bei diesen Klick auf die erste Schaltfläche dargestellt wird: Die in Spalte 1 und 2 gesetzten Autofilter werden in das Tabellenblatt Autofilter geschrieben.
Das Zurücksetzen aller Autofilter im Tabellenblatt "Übersicht" (für die erforderlichen Zwischenschritte im eigentlichen Dokument) erfolgt in unserem Beispiel-Dokument dann durch Klick auf die zweite Schalfläche ("2. Filter zurücksetzen").
Am Ende soll der Benutzer wieder auf den Tabellenblatt "Übersicht" sein, in dem er seine wie ursprünglich gefilterte Liste vorfindet - deswegen im dritten Schritt durch Klick auf die dritte Schalfläche ("3. Filter abrufen"): Die ursprünglich vom Benutzer gesetzten Autofilter werden wieder auf die Liste im Tabellenblatt "Übersicht" angewendet.
Nun meine Fragen...
Zur ersten Schaltfläche "1. Aktive Autofilter dokumentieren": Gibt es eine einfachere Möglichkeit wie meine wagen Versuche, die gesetzten Autofilter zu dokumentieren? In Wirklichkeit sind es nämlich nicht zur zwei Spalten, sondern zehn Spalten, bei denen die Autofilter zwischengespeichert werden sollten.
Zur dritten Schaltfläche "3. Filter abrufen": Wahrscheinlich wird hier jeder, der Ahnung von VBA hat, den Kopf schütteln. Ich gebe zu. Meine Versuche sind sehr dürftig. Insbesondere ist mein Problem, dass dieser Code (zunächst für Spalte 1 geschrieben) nur für maximal fünf Filterkriterien funktioniert. Mit welchen Ansatz könnte man die Anzahl der Filterkriterien variabel gestalten?
Ich danke Euch bereits jetzt ganz herzlich für Eure Rückmeldungen.

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

Betreff
Datum
Anwender
Anzeige
AW: Autofilter mit VBA
18.09.2020 15:33:38
Daniel
Hi
was du da vorhast, hat MS unter dem Menüpunkt
Ansicht - Arbeitsmappenansichten - Benutzerdef. Ansichten
in Excel eingefügt.
Da kann man die aktuelle Filtereinstellung unter einem Namen speichern und zu einem späteren Zeitpunkt aufrufen.
Wenn dir das so direkt schon reicht, dann ist es gut, wenn nein, dann hilft dir Recorder herauszufinden, wie man diese Ansichten mit VBA erstellt und verwendet.
die aktuellen Filtereinstellungen per VBA in einer Tabelle zu speichern ist zu aufwendig.
Gruß Daniel
AW: Autofilter mit VBA
18.09.2020 15:46:24
JM
Hallo Daniel,
das ist toll, vielen Dank für den großartigen Tipp. Den entsprechenden Code habe ich schon eingefügt. Es funktioniert super. Das es so einfach gehen kann.
Anzeige
AW: Autofilter mit VBA
21.09.2020 06:43:50
JM
Guten Morgen,
ich muss meine Aussage vom Freitag revidieren. Sie stimmte in soweit, als dass in der übersichtlichen Testmappe, welche ich hier hochgeladen habe, nachfolgende Prozeduren - aufgebaut auf Daniels Vorschlag - reibungslos funktionieren.
Speichern der aktuellen Benutzeransicht
Sub AktiveBenutzeransichtSpeichern()
ActiveWorkbook.CustomViews.Add _
ViewName:="Benutzeransicht", _
PrintSettings:=False, _
RowColSettings:=True
wksUebersicht.AutoFilter.Sort.SortFields.Clear
ActiveSheet.ShowAllData
End Sub
Abrufen der ursprünglichen Benutzeransicht
Sub UrspruenglicheBenutzeransichtLaden()
ActiveWorkbook.CustomViews("Benutzeransicht").Show
ActiveWorkbook.CustomViews("Benutzeransicht").Delete
End Sub
Die obigen Code-Bestandteile habe ich an entsprechender Stelle in das Hauptdokument eingefügt. Der Code funktioniert auch hier, jedoch nimmt die Codezeile...
ActiveWorkbook.CustomViews("Benutzeransicht").Show

beim Ausführen des Codes ordentlich Zeit in Anspruch.
Daher meine Frage: Gibt es noch eine andere Möglichkeit zum erneuten Setzen der vom Benutzer ausgewählten Autofilter - vielleicht doch in Richtung meines ersten Ansatzes im ursprünglich hochgeladenen Dokument?
Erneut besten Dank für alle Rückmeldungen.
Anzeige
AW: Autofilter mit VBA
21.09.2020 06:47:36
JM
Guten Morgen,
ich muss meine Aussage vom Freitag revidieren. Sie stimmte in soweit, als dass in der übersichtlichen Testmappe, welche ich hier hochgeladen habe, nachfolgende Prozeduren - aufgebaut auf Daniels Vorschlag - reibungslos funktionieren.
Speichern der aktuellen Benutzeransicht
Sub AktiveBenutzeransichtSpeichern()
ActiveWorkbook.CustomViews.Add _
ViewName:="Benutzeransicht", _
PrintSettings:=False, _
RowColSettings:=True
wksUebersicht.AutoFilter.Sort.SortFields.Clear
ActiveSheet.ShowAllData
End Sub
Abrufen der ursprünglichen Benutzeransicht
Sub UrspruenglicheBenutzeransichtLaden()
ActiveWorkbook.CustomViews("Benutzeransicht").Show
ActiveWorkbook.CustomViews("Benutzeransicht").Delete
End Sub
Die obigen Code-Bestandteile habe ich an entsprechender Stelle in das Hauptdokument eingefügt. Der Code funktioniert auch hier, jedoch nimmt die Codezeile...
ActiveWorkbook.CustomViews("Benutzeransicht").Show

beim Ausführen des Codes ordentlich Zeit in Anspruch.
Daher meine Frage: Gibt es noch eine andere Möglichkeit zum erneuten Setzen der vom Benutzer ausgewählten Autofilter - vielleicht doch in Richtung meines ersten Ansatzes im ursprünglich hochgeladenen Dokument?
Erneut besten Dank für alle Rückmeldungen.
Anzeige

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige