Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
636to640
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
636to640
636to640
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Pivot-Dropdown-Ereignis

Pivot-Dropdown-Ereignis
20.07.2005 09:43:51
Rolf
Hallo Ereignisexperten,
zwei Pivottabellen in einem Arbeitsblatt mit gleicher Datenquelle
sollen in Abhängigkeit des Wertes eines Seitenfelds in Pivottable(1)
miteinander synchronisiert werden.
Leider haben die Pivot-Dropdowns kein Click- o.ä. Ereignis.
Kennt jemand einen Trick?
FG
Rolf

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Pivot-Dropdown-Ereignis
20.07.2005 09:48:38
Ramses
Hallo Rolf
was verstehst du unter "synchronisieren" ?
Ein Klick-Ereignis gibt es wohl nicht, aber ein Calculate-Ereignis der Tabelle :-)
Gruss Rainer
AW: Pivot-Dropdown-Ereignis
20.07.2005 10:07:32
Rolf
Hallo Rainer,
hier mal ein Beispiel.
Die Einstellungen der Seitenfelder in der linken Tabelle
sollen in der rechten Tabelle übernommen, "synchronisiert" werden.
Userbild
Calculate hilft da nix.
Herzliche Grüße
Rolf
AW: Pivot-Dropdown-Ereignis
20.07.2005 10:20:10
Ramses
Hallo Rolf
Das Calculate-Ereignis wird bei jeder Änderung einer Tabelleneinstellung ausgelöst.
Hier mal ein Beispiel wie man die jeweiligen Felder abfragen kann
Sub DetectPivotFieldInPT()
Dim pf As PivotField
For Each pf In ActiveSheet.PivotTables("PivotTable1").PivotFields
    If pf.Orientation = xlRowField Then
        Debug.Print pf.Name
    End If
Next
End Sub

Sub DetectPivotFieldInPTPageField()
Dim pf As PivotField
For Each pf In ActiveSheet.PivotTables("PivotTable1").PivotFields
    If pf.Orientation = xlPageField Then
        Debug.Print pf.Name
    End If
Next
End Sub

Das ganze kannst du dann in ein Array schreiben, und damit die andere Pivot-Tabelle aktualisieren
Gruss Rainer
Anzeige
AW: Pivot-Dropdown-Ereignis
20.07.2005 10:42:03
Rolf
Hallo Rainer,
die Anpassungsroutine ist mir schon klar.
Wenn ich diese via Calculate aufrufe, gibt's
allerdings stundenlanges Bildschirmgeflimmere (trotz Sreenupdating=False).
Bisher mache ich das unkomfortablerweise über einen Button.
Herzliche Grüße
Rolf

Sub synchronisieren()
Dim i As Integer
Dim df As Variant
Dim p
df = Array("SpielNr", "Mannschaft", "Spielkategorie", "Heim/Auswärts")
For i = 1 To 4
p = ActiveSheet.PivotTables(1).PageFields(df(i)).CurrentPage
ActiveSheet.PivotTables(2).PageFields(df(i)).CurrentPage = p
Next
End Sub

Anzeige
AW: Pivot-Dropdown-Ereignis
20.07.2005 10:50:28
Ramses
Hallo
Wenn du schon ein Lösung hast, wäre es schön gewesen die schon zu Beginn zu zeigen.
Tut mir leid, das Geflackere tritt bei mir nicht auf. Daher kann ich das problem nicht so recht nachvollziehen.
Gruss Rainer
AW: Pivot-Dropdown-Ereignis
20.07.2005 11:08:15
Rolf
Hallo Rainer,
sorry, wenn ich mich missverständlich ausgedrückt habe -
aber es ging mir ja nicht um das Anpassungsmakro, sondern
um das das Makro auslösende Ereignis.
Dass das Geflackere bei dir nicht auftritt, liegt vielleicht
an den Quelldaten, auf die im konkreten Fall via Query-Abfrage
zugegriffen wird.
Vielleicht hat ja doch noch jemand eine andere Idee?!
Herzliche Grüße
Rolf
Anzeige
AW: Pivot-Dropdown-Ereignis
20.07.2005 13:59:13
Jutta
Hallo Rolf,
meinst du, wenn du in einer Tabelle etwas auswählst soll das in der anderen auch ausgewählt werden ?
Ich habe dieses Makro mal von einer freundlichen Seele bekommen:

Sub Haupt()
Call PivotAngleichen
End Sub


Sub PivotAngleichen()
Dim strSeite As String
Dim wksPIVOT_BY As Worksheet
Dim wksPIVOT_PY As Worksheet
Set wksPIVOT_BY = ThisWorkbook.Worksheets("PIVOT_BY")
Set wksPIVOT_PY = ThisWorkbook.Worksheets("PIVOT_PY")
'country
strSeite = wksPIVOT_BY.PivotTables("BY").PivotFields("country").CurrentPage
wksPIVOT_PY.PivotTables("PY").PivotFields("country").CurrentPage = strSeite
'brand
strSeite = wksPIVOT_BY.PivotTables("BY").PivotFields("brand").CurrentPage
wksPIVOT_PY.PivotTables("PY").PivotFields("brand").CurrentPage = strSeite
'usw.
End Sub

Das Makro Haupt() wird hinter einen Button gelegt. Du musst jedes Feld benennen.Das Ganze funktioniert aber nur für Auswahlen, die in beiden Pivottabellen möglich sind. Sonst ändert sich nichts in der Pivottabelle nichts.
Gruß
Jutta
Anzeige
AW: Pivot-Dropdown-Ereignis
20.07.2005 18:12:25
Rolf
Hallo Jutta,
die Angleichung ist nicht das Problem,
sondern wodurch sie ausgelöst wird (s. auch Korrespondenz mit Ramses).
Trotzdem danke für deinen Lösungsbeitrag.
Herzliche Grüße
Rolf

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige