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

Mehrere Pagefields gleichzeitig wählen (Pivot)

Mehrere Pagefields gleichzeitig wählen (Pivot)
Florian
Hallo Gemeinde!
Eine Frage wieder mal:
Es geht um eine Datei mit diversen Pivotstatistiken, die selbst per Makro erstellt wird. Es sind dabei jeweils mehrere Pivotauswertungen auf einem Sheet (also 1 Datensheet, n Sheets und jeweils m Pivots per Sheet). Was nun cool wäre zu haben:
Die Statistiken beziehen sich immer auf eine Verkaufsregion, die wiederum aus mehreren Standorten besteht. Jeder Standort besteht wieder aus mehreren Verkäufern. Den Verkaufsleiter interessieren nun zunächst die Zahlen für die ganze Region, dann für einzelne Standort usw. Ist es möglich, durch Betätigen einer Listbox (bzw. evt. anderere Auswahlalternative) ALLE Pagefields ALLER Statistiken einzugrenzen. Bsp: In einer Listbox wird beispielsweise München (nur 1x) angewählt, und alle Statistiken zeigen nur noch die Werte für München an. Wichtig: Datei wird jedesmal neu per Makro erzeugt, ich müsste also auch diesen Mechanismus per Makro erzeugen. Event? Wie?
Danke Euch schonmal für die Hilfe...
Gruss Florian

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Mehrere Pagefields gleichzeitig wählen (Pivot)
17.02.2010 11:05:44
fcs
Hallo Florian,
hier eine Beispieldatei, in der die Seitenfelder mehrere Pivottabellen auf einem Tabellenblatt synchronisiert werden.
https://www.herber.de/bbs/user/68061.xls
Damit das Ganze in deinem Fall funktioniert, muss du eine MusterArbeitsmappe erstellen, die die Prozedur unter "DieseArbeismappe" enthält.
Wenn dein Makro die Datei neu erstellt, dann muss es diese Vorlage als Basis verwenden und die Daten und Pivot-Tabellen in dieser Vorlage einfügen.
Die entsprechende Ereignis-Prozedur schaut etwa wie folgt aus.
Gruß
Franz

'Synchronisieren bestimmter Seitenfelder von Pivottabellen auf einem Tabellenblatt
Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)
Dim pvPT As PivotTable, pvField As PivotField, sWert As String, sField As String
Application.EnableEvents = False
For Each pvPT In Me.PivotTables
Select Case pvPT.Name
Case Target.Name 'Namen der Pivot-Tabs, die nicht mit synchronisiert werden sollen
'do nothing
Case Else
sField = "Region"
sWert = Target.PageFields(sField).CurrentPage.Name
pvPT.PageFields(sField).CurrentPage = sWert
sField = "Standort"
sWert = Target.PageFields(sField).CurrentPage.Name
pvPT.PageFields(sField).CurrentPage = sWert
End Select
Next
Application.EnableEvents = True
End Sub

Anzeige
Versteh ich nicht :(((
17.02.2010 21:56:07
Florian
Hi zusammen,
Danke erst mal an beide!
NoNet, die Læsung ist schon gut. Die Datei wird aber jeden Tag neu erzeugt, muss also per Makro geschehen.
Franz, versteh nicht, wie man die Datei erzeugen kann. Kannst Du das noch etwas genauer erklären?
Habe zum Verständnis eine Steuerdatei, die selbst keine Werte enthält, sondern nur den Code. Der Code erzeugt zunøchst die Datenbank (wird aus einzelnen Dateien erzeugt), dann darauf basierend die Pivots in der selben, neu angelegten Datei. Wo muss nun der Code Deiner Prozedur liegen? Rein logisch könnte ich doch den Code in eine leere Datei einbauen, in die dann (statt in eine per Makro angelegt) die Daten eingelesen werden. Der Code muss ja am Schluss hinter der Datenbank liegen. Funktioniert das ganze dann, ohne irgendwas zu verknüpfen?
Danke für Eure Hilfe!
Florian
Anzeige
AW: Versteh ich nicht :(((
18.02.2010 11:51:06
fcs
Hallo Florian,
im Prinzip hast du die Vorgehensweise verstanden.
Du erstellst eine Arbeitsmappe mit einem leeren Tabellenblatt.
Diese enthält unter "DieseArbeitsmappe" die Prozedur, die nach Aktualisierung einer Pivottabelle in einem Tabellenblatt ausgeführt werden soll. Ob du diese Datei als "normale" Exceldatei (XLS) oder Mustervorlage (XLT) anlegst ist im Prinzip egal.
Die Verknüpfungen werden in der Prozedur dabei durch die Objektvariablen, die Case-Anweisungen und die Namen der Seitenfelder hergestellt.
Private Sub Workbook_SheetPivotTableUpdate(ByVal Sh As Object, ByVal Target As PivotTable)
'Synchronisieren bestimmter Seitenfelder von Pivottabellen auf einem Tabellenblatt
Dim pvPT As PivotTable, pvField As PivotField, sWert As String, sField As String
Application.EnableEvents = False
Select Case Sh.Name
Case "Daten", "Tabelle2" 'Tabellennamen der Blätter ohne Pivot-Tabellen, bzw. deren Pivot- _
Tabs _
nicht synchronisiert werden sollen
Case Else
'Seitenfelder der Pivot-Tabellen im aktiven Tabellenblatt synchronisieren
For Each pvPT In Sh.PivotTables
Select Case pvPT.Name
Case Target.Name 'Namen der Pivot-Tabs, die nicht mit synchronisiert werden sollen
'do nothing
Case Else
sField = "Region"
sWert = Target.PageFields(sField).CurrentPage.Name
pvPT.PageFields(sField).CurrentPage = sWert
sField = "Standort"
sWert = Target.PageFields(sField).CurrentPage.Name
pvPT.PageFields(sField).CurrentPage = sWert
End Select
Next
End Select
Application.EnableEvents = True
End Sub

Die Objekt-Variable "Sh" steht für das aktive Blatt in dem eine Pivot-Tabelle aktualisiert wurde.
Die Objekt-Variable "Target" steht für die Pivot-Tabelle, die aktualisiert wurde.
Mit den Case-Anweisungen wird dann gesteuert, was in welchen Tabellenblättern passieren soll.
Hier werden die Tabellen "Daten" und "Tabelle2" ohne weitere Aktionen übersprungen.
In allen anderen Tabellenblättern werden in der For-Schleife die Einstellungen für die Seitenfelder "Region" und "Standort" in allen Pivottabellen auf dem aktiven Blatt an die Einstellung der soeben geänderten Pivot-Tabelle angepasst.
Die Namen der Tabellen und Seitenfelder muss du natürlich an die Namen in der von deiner Steuerdatei erzeugten Datei anpassen.
Gruß
Franz
Anzeige
Auswahl ORT aus Liste, Anpassung PageFields
17.02.2010 12:59:24
NoNet
Hallo Florian,
hier noch ein Beispiel von mir :
Blatt "Liste" enthält die Quelldaten, Blatt "Ortauswahl" enthält alle Orte der Liste ohne Redundanzen (zur Erstellung der Ort-Auswahl per "Daten - Gültigkeit") sowie das Ort-Auswahlfeld. Die beiden anderen Tabellenblätter enthalten einige PIVOT-Tabellen mit Feld "Ort" im Seitenfeld.
Beachte auch bitte die Kommentare in den Zellen und die definierten Bereichsnamen (per Strg+F3) !
https://www.herber.de/bbs/user/68068.xls
Gruß, NoNet
Danke (oT)!
22.02.2010 07:38:24
Florian
..

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige