Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Eine Pivottabelle - verschiedene Diagramme

1,845 views
Skip to first unread message

Jürgen Dietze

unread,
May 12, 2009, 5:33:01 AM5/12/09
to
Excel 2007

Hallo Newsgroups, ich bräuchte mal eine Idee von Euch:

Ein benutzer bekommt über einen OLAP-Cube Daten in eine Pivottabelle
geschrieben. Nun soll er auf einem separtaten Blatt 4 verschiedene Diagramme,
die aus dieser Pivottabelle resultieren sehen.

Problem 1:
Mehrere Diagramme aus einer Pivottabelle: Alle 4 Diagramme zeigen dasselbe an.

Problem 2:
3 Kopien der Pivottabelle erzeugen, heißt 4 Sets Tabelle <-> Diagramm.
Jede Änderung in den Filtereinstellungen einer Pivottabelle müsste manuell
in jeder anderen nachgetragen werden. Sehr mühselig...

Problem 3:
Ich habe versucht, die Datenbereiche der Diagramme über BEREICH.VERSCHIEBEN
zu definieren. Excel ist aber nicht doof (oder doch, wie mans braucht) und
erkennt sofort, dass der Bereich aus einer Pivottabelle stammt und macht ein
Pivotdiagramm daraus. Damit bin ich wieder bei Problem 1.

Ich habe zwei denkbare Lösungsansätze:
Ansatz 1:
Wie in Problem 2 beschrieben 4 Sets erstellen und über ein Makro die
ausgewählten Filtereinstellungen auf alle Pivottabellen übertragen.

Frage:
Wie aufwändig ist das und wie zuverlässig funktioniert das?

Ansatz 2:
Alles in eine Pivottabelle.
Bei jeder Änderung die angezeigten Daten in ein separates Tabellenblatt
schreiben und dieses dann als Grundlage für die Diagramme verwenden (über
BEREICH.VERSCHIEBEN)

Ansatz 3:
Der könnte vielleicht von Euch kommen...

Vielen Dank vorab für die Hilfe
Gruß
Jürgen

Thomas Ramel

unread,
May 15, 2009, 12:43:45 AM5/15/09
to
Gr�ezi J�rgen

J�rgen Dietze schrieb am 12.05.2009

> Ein benutzer bekommt �ber einen OLAP-Cube Daten in eine Pivottabelle

> geschrieben. Nun soll er auf einem separtaten Blatt 4 verschiedene Diagramme,
> die aus dieser Pivottabelle resultieren sehen.
>
> Problem 1:
> Mehrere Diagramme aus einer Pivottabelle: Alle 4 Diagramme zeigen dasselbe an.

Ja, das ist richtig - ein Pivot-Chart ist 'hart' an die zugrunde liegende
PT gekn�pft und kann nicht individuell gestaltet werden.

> Problem 2:
> 3 Kopien der Pivottabelle erzeugen, hei�t 4 Sets Tabelle <-> Diagramm.
> Jede �nderung in den Filtereinstellungen einer Pivottabelle m�sste manuell
> in jeder anderen nachgetragen werden. Sehr m�hselig...

Das k�nntest Du per VBA automatisieren und bei jeder �nderung in jeder PT
der Mappe alle anderen nachf�hren (lassen). Google mal hier in der NG, da
gibt es schon einige Beitr�ge zu diesem Thema.
Hier einer der j�ngsten; vielleicht kannst Du diesen Ansatz bereits nutzen:

http://groups.google.com/group/microsoft.public.de.excel/msg/16e6bde0b96956fe

> Problem 3:
> Ich habe versucht, die Datenbereiche der Diagramme �ber BEREICH.VERSCHIEBEN

> zu definieren. Excel ist aber nicht doof (oder doch, wie mans braucht) und
> erkennt sofort, dass der Bereich aus einer Pivottabelle stammt und macht ein
> Pivotdiagramm daraus. Damit bin ich wieder bei Problem 1.

Du musst darauf achten, dass die grauen Pivot-Felder *nicht* in den
Datenbereich mit einbezogen werden und dann die Namen der einzelnen
Datenreihen 'von Hand' beschriften.

> Ich habe zwei denkbare L�sungsans�tze:
> Ansatz 1:
> Wie in Problem 2 beschrieben 4 Sets erstellen und �ber ein Makro die
> ausgew�hlten Filtereinstellungen auf alle Pivottabellen �bertragen.
>
> Frage:
> Wie aufw�ndig ist das und wie zuverl�ssig funktioniert das?

Wie gesagt gibt es dazu schon einige Beitr�ge - der Aufwand h�lt sich in
Grenzen (das kommt auch ein wenig auf die Komplexit�t der PTs an) und
funktioniert anschliessend sehr zuverl�ssig.
Voraussetzung ist, dass die VBA-Makros beim �ffnen der Mappe aktiviert
werden.

> Ansatz 2:
> Alles in eine Pivottabelle.

> Bei jeder �nderung die angezeigten Daten in ein separates Tabellenblatt
> schreiben und dieses dann als Grundlage f�r die Diagramme verwenden (�ber
> BEREICH.VERSCHIEBEN)

Auch das ist eine sehr g�ngige Variante - mit diesem Bereich als Quelle
f�rs Diagramm bist Du wieder frei in deren Gestaltung.

> Ansatz 3:
> Der k�nnte vielleicht von Euch kommen...

Ich denke, Du bist da schon auf dem richtigen Weg.


Mit freundlichen Gr�ssen
Thomas Ramel

--
- MVP f�r Microsoft-Excel -
[Vista Ultimate SP-1 / xl2007 SP-1]

Jürgen Dietze

unread,
May 15, 2009, 4:27:01 AM5/15/09
to
Hallo Thomas,
vielen Dank schon mal für Deine Antwort. Ein Problem habe ich aber noch:

Wenn ein Benutzer die Option "Mehrere Elemente auswählen" aktiviert, scheint
die
angegebene Lösung
(http://groups.google.com/group/microsoft.public.de.excel/msg/16e6bde0b96956fe)

nicht zu funktionieren.

Wie müsste denn das Makro erweitert werden, um die einzelnen Items
anzusprechen?

Gruß
Jürgen

"Thomas Ramel" wrote:

> Grüezi Jürgen
>
> Jürgen Dietze schrieb am 12.05.2009
>
> > Ein benutzer bekommt über einen OLAP-Cube Daten in eine Pivottabelle

> > geschrieben. Nun soll er auf einem separtaten Blatt 4 verschiedene Diagramme,
> > die aus dieser Pivottabelle resultieren sehen.
> >
> > Problem 1:
> > Mehrere Diagramme aus einer Pivottabelle: Alle 4 Diagramme zeigen dasselbe an.
>
> Ja, das ist richtig - ein Pivot-Chart ist 'hart' an die zugrunde liegende

> PT geknüpft und kann nicht individuell gestaltet werden.
>
> > Problem 2:
> > 3 Kopien der Pivottabelle erzeugen, heißt 4 Sets Tabelle <-> Diagramm.
> > Jede Änderung in den Filtereinstellungen einer Pivottabelle müsste manuell
> > in jeder anderen nachgetragen werden. Sehr mühselig...
>
> Das könntest Du per VBA automatisieren und bei jeder Änderung in jeder PT
> der Mappe alle anderen nachführen (lassen). Google mal hier in der NG, da
> gibt es schon einige Beiträge zu diesem Thema.
> Hier einer der jüngsten; vielleicht kannst Du diesen Ansatz bereits nutzen:
>
> http://groups.google.com/group/microsoft.public.de.excel/msg/16e6bde0b96956fe
>
> > Problem 3:
> > Ich habe versucht, die Datenbereiche der Diagramme über BEREICH.VERSCHIEBEN

> > zu definieren. Excel ist aber nicht doof (oder doch, wie mans braucht) und
> > erkennt sofort, dass der Bereich aus einer Pivottabelle stammt und macht ein
> > Pivotdiagramm daraus. Damit bin ich wieder bei Problem 1.
>
> Du musst darauf achten, dass die grauen Pivot-Felder *nicht* in den
> Datenbereich mit einbezogen werden und dann die Namen der einzelnen
> Datenreihen 'von Hand' beschriften.
>

> > Ich habe zwei denkbare Lösungsansätze:
> > Ansatz 1:


> > Wie in Problem 2 beschrieben 4 Sets erstellen und über ein Makro die
> > ausgewählten Filtereinstellungen auf alle Pivottabellen übertragen.
> >
> > Frage:

> > Wie aufwändig ist das und wie zuverlässig funktioniert das?
>
> Wie gesagt gibt es dazu schon einige Beiträge - der Aufwand hält sich in
> Grenzen (das kommt auch ein wenig auf die Komplexität der PTs an) und
> funktioniert anschliessend sehr zuverlässig.
> Voraussetzung ist, dass die VBA-Makros beim öffnen der Mappe aktiviert


> werden.
>
> > Ansatz 2:
> > Alles in eine Pivottabelle.

> > Bei jeder Änderung die angezeigten Daten in ein separates Tabellenblatt
> > schreiben und dieses dann als Grundlage für die Diagramme verwenden (über

> > BEREICH.VERSCHIEBEN)
>
> Auch das ist eine sehr gängige Variante - mit diesem Bereich als Quelle
> fürs Diagramm bist Du wieder frei in deren Gestaltung.
>
> > Ansatz 3:
> > Der könnte vielleicht von Euch kommen...


>
> Ich denke, Du bist da schon auf dem richtigen Weg.
>
>

> Mit freundlichen Grüssen
> Thomas Ramel
>
> --
> - MVP für Microsoft-Excel -

Thomas Ramel

unread,
May 18, 2009, 5:09:23 AM5/18/09
to
Gr嚙箴zi J嚙緝gen

J嚙緝gen Dietze schrieb am 15.05.2009

> vielen Dank schon mal f嚙緝 Deine Antwort. Ein Problem habe ich aber noch:
>
> Wenn ein Benutzer die Option "Mehrere Elemente ausw嚙篁len" aktiviert, scheint
> die
> angegebene L嚙編ung

> Wie m嚙編ste denn das Makro erweitert werden, um die einzelnen Items
> anzusprechen?

Da m嚙編sen dann alle Items des Seitenfeldes einzeln durchlaufen und gepr嚙篆t
werden. Versuche es mit den folgenden Zeilen:

Private Sub Workbook_SheetPivotTableUpdate(ByVal Sh As Object, ByVal Target
As PivotTable)
Dim ws As Worksheet
Dim pt As PivotTable
Dim pf As PivotField
Dim pi As PivotItem

On Error GoTo ErrorHandler
Application.EnableEvents = False
For Each ws In ThisWorkbook.Worksheets
For Each pt In ws.PivotTables
If (ws.Name = Sh.Name) And (pt.Name = Target.Name) Then
GoTo SamePT
Else
Set pf = Target.PivotFields("Name")
pt.ManualUpdate = True
pt.PivotFields("Name").ClearAllFilters
For Each pi In pf.PivotItems
If pi.Visible = False Then
pt.PivotFields("Name").PivotItems(pi.Name).Visible = False
End If
Next pi
pt.ManualUpdate = False
End If
SamePT:
Next pt
Next ws
ErrorHandler:
Application.EnableEvents = True
End Sub


Mit freundlichen Gr嚙編sen
Thomas Ramel

--
- MVP f嚙緝 Microsoft-Excel -

Jürgen Dietze

unread,
May 18, 2009, 5:33:01 AM5/18/09
to
Hallo Thomas,
erstmal Danke!

Kleines Problem gibt es noch:

Das PivottableUpdate-Ereignis unter 2007 sieht so aus:
Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)

Wenn ich Deinen Aufruf verwende, zieht das Ereignis nicht. Ebenso, wenn ich
das Excelereignis um den Text "ByVal Sh as Object" erweitere.

Kannst Du mir da noch helfen?
Danke
Jürgen

"Thomas Ramel" wrote:

> Grüezi Jürgen
>
> Jürgen Dietze schrieb am 15.05.2009


>
> > vielen Dank schon mal für Deine Antwort. Ein Problem habe ich aber noch:
> >
> > Wenn ein Benutzer die Option "Mehrere Elemente auswählen" aktiviert, scheint
> > die
> > angegebene Lösung

> > Wie müsste denn das Makro erweitert werden, um die einzelnen Items
> > anzusprechen?
>
> Da müssen dann alle Items des Seitenfeldes einzeln durchlaufen und geprüft

> Mit freundlichen Grüssen
> Thomas Ramel
>
> --
> - MVP für Microsoft-Excel -

Thomas Ramel

unread,
May 18, 2009, 10:38:33 AM5/18/09
to
Gr�ezi J�rgen

J�rgen Dietze schrieb am 18.05.2009

> erstmal Danke!

Aber gerne doch...

> Das PivottableUpdate-Ereignis unter 2007 sieht so aus:
> Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)

Das ist aber nur das Tabellenblatt bezogene Ereignis.

> Wenn ich Deinen Aufruf verwende, zieht das Ereignis nicht. Ebenso, wenn ich
> das Excelereignis um den Text "ByVal Sh as Object" erweitere.

Ja, da darfst Du nichts erweitern, diese Code-Ger�ste laufen nur auf diese
Weise wie sie von Excel selbst vorgegeben werden.

> Kannst Du mir da noch helfen?

Meine Codezeilen (1:1 aus xl2007 kopiert) gelten f�r die komplette Mappe
und m�ssen daher in 'Diese Arbeitsmappe' abgelegt werden.

Anschliessend klappt es dann aber IMO reibungslos - egal in welcher PT auf
welchem Tabellenblatt Du die Einstellung des Feldes vornimmst.

Mit freundlichen Gr�ssen
Thomas Ramel

--
- MVP f�r Microsoft-Excel -

Jürgen Dietze

unread,
May 19, 2009, 2:41:00 AM5/19/09
to
Moin Thomas,
jetzt hab ich es auch verstanden. Mir war nicht klar, dass es dieses
Ereignis auf Arbeitsmappenebene gibt (obwohl: hätt ich drauf kommen
können...).

Jetzt läuft es so, wie es soll!

Danke und Tschüss
Jürgen

"Thomas Ramel" wrote:

> Grüezi Jürgen
>
> Jürgen Dietze schrieb am 18.05.2009


>
> > erstmal Danke!
>
> Aber gerne doch...
>
> > Das PivottableUpdate-Ereignis unter 2007 sieht so aus:
> > Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)
>
> Das ist aber nur das Tabellenblatt bezogene Ereignis.
>
> > Wenn ich Deinen Aufruf verwende, zieht das Ereignis nicht. Ebenso, wenn ich
> > das Excelereignis um den Text "ByVal Sh as Object" erweitere.
>

> Ja, da darfst Du nichts erweitern, diese Code-Gerüste laufen nur auf diese


> Weise wie sie von Excel selbst vorgegeben werden.
>
> > Kannst Du mir da noch helfen?
>

> Meine Codezeilen (1:1 aus xl2007 kopiert) gelten für die komplette Mappe
> und müssen daher in 'Diese Arbeitsmappe' abgelegt werden.


>
> Anschliessend klappt es dann aber IMO reibungslos - egal in welcher PT auf
> welchem Tabellenblatt Du die Einstellung des Feldes vornimmst.
>
>
>

> Mit freundlichen Grüssen
> Thomas Ramel
>
> --
> - MVP für Microsoft-Excel -

thomas...@gmail.com

unread,
May 19, 2009, 3:36:02 AM5/19/09
to
Grüezi Jürgen

Aufgrund deiner ersten Antwort hatte ich geschlossen, dass Du die
Prozedur bereits getestet hast.

On 19 Mai, 08:41, Jürgen Dietze


<JrgenDie...@discussions.microsoft.com> wrote:
> Moin Thomas,
> jetzt hab ich es auch verstanden. Mir war nicht klar, dass es dieses
> Ereignis auf Arbeitsmappenebene gibt (obwohl: hätt ich drauf kommen
> können...).
>
> Jetzt läuft es so, wie es soll!


Fein, dass es nun wie gewünscht klappt.

0 new messages