Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1040to1044
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

Makro: Pivotfilter aus Zellinhalt

Makro: Pivotfilter aus Zellinhalt
20.01.2009 14:00:00
Daniel
Hallo Excelexperten,
ich habe eine Pivottabelle mit einem Feld, dass die vorhandenen Berichtsmonate enthält. Den für meinen Bericht gerade relevanten Berichtsmonat ermittle ich per Formel in der Zelle D26. Per Makro möchte ich diesen Wert nun an die Pivottabelle übergeben.
Der Code, den ich zunächst per "Makro aufzeichnen" aufgezeichnet habe, sieht wie folgt aus:

Sub PivotfilterÄndern()
ActiveSheet.PivotTables("Microsoft Office PivotTable 11.0").PivotFields( _
"[Zeit].[Jahr - Monat - Datum]").AddPageItem _
"[Zeit].[Jahr - Monat - Datum].[Monat].[2008/10]", True
End Sub


Ich möchte den fettmarkierten Term durch den (dynamischen) Wert in Zelle D26 ersetzen, aber irgendwie will das partout nicht funktionieren. Die Formel in der Zelle ermittelt - wie in der Pivottabelle benötigt - einen Wert in dem Format JJJJ/MM.
Könnt ihr mir hier mit einem schlauen Tipp weiterhelfen?

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro: Pivotfilter aus Zellinhalt
20.01.2009 17:37:24
fcs
Hallo Daniel,
wenn der Pivot-Tabellenbericht schon existiert, dann reicht etwa folgendes um den Wert des Seitenfeldes neu zu setzen, wobei du die Namen der Tabellenblätter und ggf. des Berichts-Feldes noch anpassen muss.
Gruß
Franz

Worksheets("Pivot01").PivotTables(1).PageFields("Monat").CurrentPage = _
Worksheets("Tabelle1").Range("D26").Text


AW: Makro: Pivotfilter aus Zellinhalt
20.01.2009 18:25:00
Daniel
Hallo Franz,
ich habe deinen Code entsprechend angepasst übernommen, bekomme aber noch die Fehlermeldung "Die PageFields-Eigenschaft des PivotTable-Objektes kann nicht zugeordnet werden".
Ich habe es im Code sowohl nur mit der Angabe PageFields("Monat") versucht als auch mit PageFields("[Zeit].[Jahr - Monat - Datum].[Monat]") [Das ist das, was vom Makro-Rekorder aufgezeichnet wurde] Was davon wäre richtig? Könnte es hier ein Problem mit den mehreren Dimensionen geben? Mein Dropdown-Menü sieht nämlich wie folgt aus:
Userbild
Ansprechen möchte ich hier nur den Monat.
Viele Grüße
Daniel
Anzeige
AW: Makro: Pivotfilter aus Zellinhalt
21.01.2009 11:03:00
fcs
Hallo Daniel,
solch ein mehrdimensionales Feld in einer Pivot-abelle ist mir neu.
Wie erzeugt man es denn bzw. wie müssen die Daten in der Datenquelle aussehen, damit man ein solches Feld anlegen kann?
Danach kann ich dir dann evtl. beim VBA-Code weiterhelfen.
Gruß
Franz
AW: Makro: Pivotfilter aus Zellinhalt
21.01.2009 12:30:42
Daniel
Hallo Franz,
der Hintergrund ist für mich leider auch nicht komplett klar, da mir hier die technische Sicht fehlt. Ich bekomme die Daten aus einem OLAP-Cube aus dem DataWarehouse in unserer Firma. Dahinter stecken verschiedene Kennzahlen- sowie Dimensionstabellen. Darüber erfolgt eine Verknüpfung: bspw. Tag = Element von Monat, Monat = Element von Jahr usw. Aufgrund mangelndes Wissen aus diesem Bereich kann ich das Ganze nur grob so vergleichen, dass es ähnlich aussieht wie im Beziehungsmanager von Access.
Die Pivottabelle, die für mich im Endeffekt rausspringt ist dann nach der im letzten Beitrag aufgezeigten Form aufgebaut.
Die Infos reichen soweit für dich sicher noch nicht aus, oder?
Viele Grüße, Daniel
Anzeige
AW: Makro: Pivotfilter aus Zellinhalt
21.01.2009 12:55:16
fcs
Hallo Daniel,
mit Pivot-Erstellung via OLAB-Cube hab ich keine Erfahrung.
Probier mal die nachfolgende Variante - Namen der Tabellen muss du noch anpassen.
Wobei ich mir nicht sicher bin, ob hier die AddItem-Methode von deinem aufgezeichneten Code die richtige/optimale Wahl ist.
Gruß
Franz

Sub PivotfilterÄndern()
Worksheets("Pivot01").PivotTables("Microsoft Office PivotTable 11.0").PivotFields( _
"[Zeit].[Jahr - Monat - Datum]").AddPageItem _
"[Zeit].[Jahr - Monat - Datum].[Monat].[" _
& Worksheets("Tabelle1").Range("D26").Text & "]", True
End Sub


Anzeige
AW: Makro: Pivotfilter aus Zellinhalt
21.01.2009 13:20:49
Daniel
Wow - es funktioniert! Das ist einfach nur großartig! :-D
Ich verstehe zwar noch nicht, warum es nun geht (dafür bin ich in VBA wohl noch nicht weit genug), aber das ist an der Stelle erstmal nebensächlich.
Tausend Dank für deine grandiose Hilfe! :)
Viele Grüße, Daniel

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige