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

Pivotfilter per VBA setzen

Pivotfilter per VBA setzen
05.02.2021 17:18:42
Nils
Hallo zusammen,
ich benötige ein wenig Hilfe bei folgendem Problem (leider bin ich über die Forensuche nicht fündig geworden):
in zwei PivotTabellen möchte ich per Makro einen Filter setzen.
Den zu filternden Wert soll das entsprechende Makro aus einer DropDown-Zelle auf einem anderen Tabellenblatt auslesen und einsetzen, sobald ein "Aktualisieren"-Button betätigt wird.
Leider habe ich keinen Ansatz, wie das funktionieren könnte. Der Makro-Recorder gibt ein nicht funktionierendes Skript aus. Ich wäre sehr dankbar, wenn mir hierbei Jemand helfen könnte.
Viele Grüße
Nils

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Pivotfilter per VBA setzen
05.02.2021 17:51:04
fcs
Hallo Nils,
am einfachsten wird es, wenn du eine Beispiel-Datei mit reduzierten/ggf. anonymisierten Daten hier hochlädst, die auch die schon erstellten Makros enthält.
Pivottabellen per VBA zu modifizieren erfordert einfach zu viele Parameter (z.B. Tabellen, Pivottabellen-Name/Index, Feldname, Filtertyp, Datentyp (Text, zahl,Datum), Filterwert, sollen alle eingestellten Filterwerte oder nur die für Feld zurückgesetzt werden, usw.), die berücksichtigt werden müssen.
Eine außerhalb des Pivotberichts verwendete Auswahlliste kann Probleme bereiten, wenn Auswahldaten nicht in den Daten des zu filternden Feldes vorhanden sind - ggf. ist zusätzliche Fehlerbehandlung erforderlich.
Da deine VBA-Kentnisse sich scheinbar noch in Grenzen halten, hilft es nur bedingt, wenn ich dir hier eine allgemeinen ansatz schreibe,den du individuell anpassen musst.
LG
Franz
Anzeige
AW: Pivotfilter per VBA setzen
05.02.2021 17:58:14
Nils
Hallo Franz,
schon mal Danke für deine erste Rückmeldung.
Ich "bastele" mal eine Beispieldatei, da ich die Originaldatei nicht veröffentlichen kann.
Ich melde mich bald wieder.
Viele Grüße
AW: Pivotfilter per VBA setzen
05.02.2021 20:08:30
Nils
Hallo nochmal,
hier nun meine Datei.
Ziel ist es, auf dem Tabellenblatt "Auswertung" über die Dropdown-Zelle eine Kostenstelle (KST) auszuwählen und per Klick auf den "Aktualisieren"-Button in den Filter der Pivot auf Tabellenblatt "Pivot" zu übertragen.
Schön wäre es, wenn diese einzelne Filterung schon mal per Makro funktionieren würde.
Noch schöner wäre es, wenn sogar eine Mehrfachauswahl (z.B. durch eine oder zwei weitere Dropdown-Zellen) möglich wäre.
Das Makro was bereits mit dem Button verknüpft ist und per Makro-Recorder aufgezeichnet wurde, funktioniert leider nicht.
Ich freue mich über eine Rückmeldung.
Nils
https://www.herber.de/bbs/user/143651.xlsm
Anzeige
AW: Pivotfilter per VBA setzen
06.02.2021 13:50:17
fcs
Hallo Nils,
habe den verregneten Vormittag genutzt, um die Auswahl im Blatt "Auswertung" per Makro im Blatt "Pivot" umzusetzen.
- es können mehrere Filterwerte in 3 Zellen ausgewählt werden.
- für einen 2. Pivotbericht ist eine Zeile vorbereitet.
https://www.herber.de/bbs/user/143666.xlsm
Hoffe du kommst damit weiter.
LG
Franz
AW: Pivotfilter per VBA setzen
07.02.2021 17:50:11
Nils
Hallo Franz,
wow - klasse.
Das es so komplex (zumindest für Anfänger wie mich) werden würde, hätte ich nicht gedacht.
Vielen vielen Dank für deine Unterstützung!
Ich werde mich in dieser Woche mit der Integration in meine "echte" Datei beschäftigen.
Die dazu nötigen Anpassungen werde ich hinbekommen, denke ich.
Gerne gebe ich nochmal eine Rückmeldung, wenn das Ding am Ende läuft.
Schönen Abend!
Gruß Nils
Anzeige
AW: Pivotfilter per VBA setzen
08.02.2021 10:25:56
Nils
Hallo Franz,
ich bin gerade mit dem Skript beschäftigt.
Kannst du mir sagen, welche Funktion das Makro1 hat?
Zuerst dachte ich, dass es noch das Überbleibsel von meinem Makro-Recorder-Versuch ist, aber ohne das Makro1 scheint das Ganze nicht zu funktionieren. Dann wäre für mein Verständnis die Frage offen, warum bei den PivotItems scheinbar alle theoretisch vorhandenen Kostenstellen außer die "40" zu finden sind?
Was passiert an dieser Stelle?
Eine weitere Frage wäre, wie man vorgehen müsste, wenn neben dem KST-Berichtsfilter noch weitere Filter relevant wären (z.B. "Bereich" , "Abteilung" o.ä.), die entweder auf einen festen Wert eingestellt bleiben oder auch variabel anpassbar sein sollen?
Viele Grüße
Nils
Anzeige
AW: Pivotfilter per VBA setzen
09.02.2021 12:26:54
fcs
Hallo Nils,
das Makro1 hatte ich aufgezeichnet, um die korrekte Syntax für das eigentliche Makro festzulegen.
Es ist nicht erforderlich - du kannst es löschen.
Das Setzen des Filters im Seitenbereich unter VBA ist manchmal etwas tricky. Des halb wähle ich den Weg, dass zunächst alle Items angezeigt werden - das Erfolgt via ClearAllFilters, wenn alle Filter in der Pivot zurückgesetzt werden sollen, oder indem im 1. Schritt der Filterwert auf "(All)" gesetzt wird.
Danach wird dann die Visible-Eigenschaft der Items, die ausgeblendet werden sollen auf False gesetzt.
Deshalb fehlt "40" in der Liste.
Wenn du den Filter für weiter Felder setzen willst, dann der Filter nicht für alle Felder zurückgesetzt werden.
In diesem Makro muss dann der Parameter bolClearAllFilters mit False übergeben werden.
    Call Update_Pivot_Table(varSheet:="Pivot", varPivotTab:=1, strField:="Kostenstelle", _
varPpageFilter:=Split(.Text, ";"), bolClearAllFilter:=False)
LG
Franz
Anzeige
Warum nicht mit Bordmitteln...
06.02.2021 03:29:05
Charly
Hi Nils
... da hast du auch gleich ein Mehrfachfiler.
sh. Beispiel
https://www.herber.de/bbs/user/143655.xlsm
Deine Formel für die KW (Deutschland) ist falsch.
Entweder mit Parameter 21 oder ISOKALENDERWOCHE verwenden.
Gruß Charly
AW: Warum nicht mit Bordmitteln...
08.02.2021 10:27:49
Nils
Hallo Charly,
danke für deine Rückmeldung.
Für mein Beispiel würde das funktionieren, in der späteren Anwendung möchte ich das Ganze aber ausweiten und z.B. auf zwei Pivots anwenden - sorry, das hatte ich nicht beschrieben.
Viele Grüße
Nils
AW: Warum nicht mit Bordmitteln...
09.02.2021 07:08:33
Charly
Hi Nils
Das geht doch.
unter Datenschnitt - Berichtsverbindungen
kannst du wenn gewünscht einen Datenschnitt auf alle deine Pivottab. anwenden.
Was mir noch aufgefallen ist.
Warum setzt du für die Pivot einen fixen Bereich?
Du kannst dich doch auf deine formatierte Tabelle beziehen.
Gruss Charly
Anzeige

314 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige