Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1880to1884
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
Inhaltsverzeichnis

Autofilter über Pivot, mit VBA steuern

Autofilter über Pivot, mit VBA steuern
13.05.2022 10:59:14
Andrea
Hallo an die Experten,
ich möchte über eine Pivot-Tabelle einen Autofilter legen und diesen per Makro steuern. Konkret möchte ich, dass alle Zeilen herausgefiltert werden, die in der Summenspalte den Wert 0,00 haben.
Den Autofilter entsprechend per Makro zu steuern, ist mir in einer reinen Excel-Tabelle (s. Beispieldatei, Tabelle "Daten") mit folgendem Makro gelungen:

Sub Daten_ohne_Nullsummen()
ActiveSheet.Range("$A$1:$D$13").AutoFilter Field:=4, Criteria1:="0"
End Sub
Nun habe ich auf der Basis dieser reinen Excel-Tabelle in der Tabelle "Pivot" (s. Beispieldatei) eine Pivot-Tabelle erstellt und dort einen Autofilter eingefügt.
Bediene ich den Autofilter manuell, kann ich ebenso wie in der reinen Excel-Tabelle alle Nullwerte aus der Summenspalte ausblenden.
Wende ich dagegen das Makro an (Pivot_ohne_Nullsummen), kommt eine Fehlermeldung!? Warum?
https://www.herber.de/bbs/user/153047.xlsm
Viele Grüße
Andrea

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

Betreff
Datum
Anwender
Anzeige
AW: Autofilter über Pivot, mit VBA steuern
13.05.2022 11:32:33
Yal
Hallo Andrea,
es leigt daran, dass eine Pivottabelle keine standardtabelle ist.
Du musst den Makrorekoder anstossen, in der PT Januar rechtsklicken, "Filter" > "Werte.." dann "Summe von A" - "entspricht nicht" - "0"
Makrorekorder stoppen.
Du hast dann einen Code der so aussieht:

Sub Makro1()
ActiveSheet.PivotTables("PivotTable2").PivotFields("Monat").PivotFilters.Add2 _
Type:=xlValueDoesNotEqual, _
DataField:=ActiveSheet.PivotTables("PivotTable2").PivotFields("Summe von Wert A"), _
Value1:=0
End Sub
Also ganz anders als der Standardfilter.
Achtung: Du hast den Sonderfall, dass überall wo "Summe von A" null ist, "Summe von B" auch null ist. Setzt Du aber den A von April von 58 auf 0, dann verschwindet den ganzen April, auch wenn B und C nicht null sind.
Idealerweise setzst Du den Filter auf "Summe von Summe" entspricht nicht 0 (Da Du keine negative Werte hast).
VG
Yal
Anzeige
AW: Autofilter über Pivot, mit VBA steuern
13.05.2022 12:02:16
Andrea
Hallo Yal,
danke.
Die speziellen Pivot-Filter kenne ich natürlich und sie funktionieren in der Tabelle die ich mitgeschickt hatte auch. Leider komme ich bei der Pivot-Tabelle, die mir von der Firmensoftware zur Verfügung gestellt wird so nicht zum Ziel :-(
Ich hatte nicht die Originaldatei mitgeschickt, aus Datenschutzgründen und weil ihr sie ja dann auch nicht aktualisieren könnt. Um das Problem zu verdeutlichen habe ich jetzt mal die Daten etwas verdichtet, so dass man die Einzelwerte nicht mehr sieht, sondern nur noch je Standort, was auch dazu führt, dass ich gar keine Nullzeilen mehr habe. Vom Prinzip kann man aber an dieser schön sehen, dass man die Spalte Gesamtergebnis leider über die Pivot-Filter überhaupt nicht erreicht :-(
Hier die Firmen-Pivot: https://www.herber.de/bbs/user/153050.xlsx
Deshalb war ich ja auf die Idee mit dem drübergelegten Autofilter gekommen, der übrigens auch bei der Firmen-Pivot funktioniert, WENN man ihn manuell bedient.
Gibt es nicht noch eine andere Möglichkeit den VBA-Code anzupassen, damit er mit dem Autofilter genau das tut, was er auch bei manueller Anwendung macht?
Danke und Gruß Andrea
Anzeige
AW: Autofilter über Pivot, mit VBA steuern
13.05.2022 12:49:11
Yal
Hmm... es kommt aus einem Microsoft Analysis Services Cube. Da musst Du dich an den Spezialisten wenden. Es gäbe sicher die Möglichkeit, die Abfrage zu beschränken.
Eventuell kannst Du anstatt direkt auf dem Cube über Power Query Abfrage filtern.
Als letzte Lösung: lege eine Formel ausserhalb der Pivot, die die Werte der Spalte Gesamtergebnis übernimmt und filtere diese Spalte. Diese Spalte könnte man aus ausblenden.
VG
Yal
AW: Autofilter über Pivot, mit VBA steuern
13.05.2022 17:41:27
Andrea
Hallo Yal,
danke für den Tipp mit der Spalte außerhalb der Pivot! Damit hab ich mir jetzt was gebastelt.
VG Andrea
AW: Autofilter über Pivot, mit VBA steuern
13.05.2022 15:14:09
ChrisL
Hi Andrea
https://www.herber.de/bbs/user/153055.xlsx
Variante 1 mit Measures
N.b. Es reicht nicht, die FILTER-Funktion nur auf dem Total anzuwenden, weil die Null-Werte in Spalte A und B sind trotzdem noch da. Es müssen also sämtliche Ergebnis-Werte "vernichtet" werden.

SummeA =SUM(Tabelle1[Wert A])
SummeB =SUM(Tabelle1[Wert B])
SummeTotal =Tabelle1[SummeA]+Tabelle1[SummeB]
FilterA =CALCULATE(Tabelle1[SummeA];FILTER(Tabelle1;Tabelle1[SummeA]0))
FilterB =CALCULATE(Tabelle1[SummeB];FILTER(Tabelle1;Tabelle1[SummeB]0))
FilterTotal =CALCULATE(Tabelle1[SummeTotal];FILTER(Tabelle1;Tabelle1[SummeTotal]0))
Variante 2 mit berechnetem Feld
Direkt im Power-Pivot Datenmodell ein neues berechnetes Feld einfügen. Das Feld wird dann wie eine "normale Spalte" behandelt d.h. der normale Pivot-Filter kann angewendet werden.

=Tabelle1[Wert A]+Tabelle1[Wert B]
cu
Chris
Anzeige
AW: Autofilter über Pivot, mit VBA steuern
13.05.2022 17:53:27
Andrea
Hallo Chris,
vielen Dank für deine Mühe. Das hört sich sehr interessant an, ich fürchte allerdings, ich habe zu wenig Kenntnisse, um in Gänze nachzuvollziehen, was du vorschlägst :-(
Wahrscheinlich kommen die Lösungen für mich aber nicht in Frage, da ich die mir von der Firmensoftware zur Verfügung gestellte Pivot (s. Beispieldatei in meiner ersten Antwort an Yal) wahrscheinlich gar nicht entsprechend anpassen kann. Aber ich wüsste auch gar nicht wo und wie ich das anstellen sollte.
Viele Grüße Andrea
AW: Autofilter über Pivot, mit VBA steuern
13.05.2022 19:35:16
ChrisL
Hi Andrea
Passt schon. Nur für den Fall, dass du doch noch tiefer abtauchen möchtest.
1. Power-Pivot aktivieren
https://support.microsoft.com/de-de/office/starten-des-power-pivot-add-ins-f%C3%BCr-excel-a891a66d-36e3-43fc-81e8-fc4798f39ea8
2. Menü Power-Pivot, Bereich/Quelldaten dem Datenmodell hinzufügen
Aufgrund der Cube-Geschichte würde ich annehmen, dass die Daten bereits im Modell sind. Dann kann man diesen Schritt überspringen.
a) Im gleichen Menü steht die Auswahl "Measure" (eine Art Formel-Editor) zur Verfügung
b) Oder du gehst auf im gleichen Menü auf "Verwalten", Power-Pivot-Editor öffnet und "hinzufügen neue Spalte", wo du in der Befehlszeile die Formel für das berechnete Feld eingeben/bestätigen kannst.
cu
Chris
Anzeige
AW: Autofilter über Pivot, mit VBA steuern
16.05.2022 18:16:15
Andrea
Hallo Chris,
das ist sehr interessant und in deiner selbst erstellten Pivot aus den in Excel bereit gestellten Ursprungsdaten, kann ich das auch nachvollziehen.
Offensichtlich ist es in unserer Firma aber irgendwie anders!?
Wenn ich hier eine Pivot auf der Grundlage der Firmendatenbank erstelle kommt beim Befehl „Zu Datenmodell hinzufügen“ folgende Fehlermeldung:

Der ausgewählte Bereich ist ungültig. Wählen Sie einen gültigen Bereich aus. Eine Tabelle kann einen Bereich, der einen PivotTable-Bericht, ein Abfrageergebnis, eine andere Tabelle oder geschützte Zellen enthält, nicht überlappen.
Beim Befehl „Neues Measure …“ kommt:

Sie verfügen über kein Modell, bzw. das Modell ist leer. Measures können nicht erstellt oder verwaltet werden.
Gehe ich in einer leeren Tabelle auf Pivot -> Verwalten -> Externe Daten abrufen und gebe dort unserer Datenbank an, kommt:

MDX-Abfrage angeben!
Und da hört es dann leider bei mir auf :-(
Ich befürchte, unser Softwarehersteller hat die Möglichkeiten der Pivot-Nutzung irgendwie beschränkt. Kann das sein?
Viele Grüße Andrea
Anzeige
AW: Autofilter über Pivot, mit VBA steuern
16.05.2022 19:25:23
ChrisL
Hi Andrea
Da bin ich jetzt ehrlich gesagt auch überfragt. MDX lese ich zum ersten mal, gibt aber einen Hinweis auf die verwendete Technik:
https://support.microsoft.com/de-de/office/mdx-abfrage-designer-f%C3%BCr-analysis-services-power-pivot-30ab91f9-82a6-4f95-a5ec-2b6b7ab5cbcf
Soweit ich das auf die Schnelle verstehe, greift MDX direkt auf das externe Datenmodell zu und importiert die bereits bestehenden Measures. Das Datenmodell existiert also bereits und wird nicht in Excel verwaltet. Anders ausgedrückt, man müsste in die bestehende MDX-Query eingreifen. Selbst wenn dies vielleicht möglich/erlaubt wäre, würde ich aufgrund der Komplexität (erfordert Verständnis des Datenmodells) eher nicht in den MDX-Abfrage-Designer eingreifen und die Syntax der Abfragesprache unterscheidet sich zu dem von mir aufgezeigten. Ich würde mich also eher an den Softwarehersteller bzw. den Verwalter der Daten-Cube wenden, damit dieser neue gefilterte Measure zur Verfügung stellt. Damit wäre dann auch die Wartung/Updates gewährleistet.
Eine interessante neue (Daten-)welt, aber ich denke das sollte man dann doch besser den Profis überlassen. :-)
cu
Chris
Anzeige
AW: Autofilter über Pivot, mit VBA steuern
17.05.2022 10:14:11
Andrea
Hallo Chris,
vielen Dank für deine zahlreichen Hinweise.
Mich an den Hersteller wenden, tue ich laufend. Nur meistens mit wenig Erfolg :-(
Deshalb suche ich ja permanent nach Wegen, die auszutricksen!
Viele Grüße
Andrea

308 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige