Microsoft Excel

Herbers Excel/VBA-Archiv

Pivot-Filter aus Zelle steuern

Betrifft: Pivot-Filter aus Zelle steuern von: Sara
Geschrieben am: 02.10.2020 09:32:23

Hallo!

Ich bin Neuling wenn es um Excel VBA's geht und stehe vor folgendem Problem.

Ich habe drei Pivot-Tabellen mit zugehörigen Diagrammen erstellt.

Zwei davon entspringen aus dem gleichen Datensatz, die dritte aus einem anderen.


Ich habe mich gefragt, ob es möglich ist, über ein Makro einen bestimmten Wert (vierstellige Nummer) einzugeben, sodass Excel automatisch diesen Wert in allen drei Berichtsfiltern anwendet.


Da ich mich mit VBA wirklich nicht auskenne, wäre ich unglaublich dankbar, wenn mir jemand einen Code zur Verfügung stellen könnte!

Der Zielwert würde in Zelle A1 eingegeben werden. Diese Zelle habe ich in "PivotFilter" umbenannt.

Die Pivot-Tabellen heißen "PivotTable4" , "PivotTable5" und "PivotTable6"


Tausend dank für jegliche Hilfestellung!

Betrifft: AW: Pivot-Filter aus Zelle steuern
von: Yal
Geschrieben am: 02.10.2020 11:11:37

Hallo SAra,

VBA nicht nötig. Was du brauchst ist ein Datenschnitt-Steuerung.

Wenn Pivottabelle markiert ist (oder nur eine Zelle in der Pivottabelle), erscheint der Menüpunkt "Pivotttabelle-Tools >> Analysieren". Darin "Datenschnitt einfügen" anklicken.
Auf dem Datenschnitttools, die Berichtsverbindung anpassen.

Wie es sich verhält, wenn die Datensätze unterschiedlich sind, weiß ich nicht. Da kann man vielleicht mit dem Marko-Recorder etwas bewirken.

Viel Erfolg
Yal

Betrifft: AW: Pivot-Filter aus Zelle steuern
von: Sara
Geschrieben am: 02.10.2020 11:14:14

Zunächst mal vielen Dank für deinen Kommentar!

Das mit dem Datenschnitt habe ich schon versucht. Das ist möglich bei den zwei Pilots die aus demselben Datensatz entspringen.
Aber bei der dritten hörts auf und ich kann die Datensätze auch nicht zusammenführen... :(

Betrifft: AW: Pivot-Filter aus Zelle steuern
von: Yal
Geschrieben am: 02.10.2020 11:52:17

habe ich befürchtet.

Leider haben die Slicer (=Datenschnitt) keine Events, die man umleiten kann. Daher muss man, nachdem der Auswahl einerseits vollständig ist, eine Marko anstossen, um die andere Seite zu synchronisieren:
Sub Slicer2VomSlicer1_steuern()
Dim SC1 As SlicerCache
Dim SC2 As SlicerCache
Dim SI As SlicerItem
    Set SC1 = ActiveWorkbook.SlicerCaches("Datenschnitt_1")
    Set SC2 = ActiveWorkbook.SlicerCaches("Datenschnitt_2")
'Reset alle Auswahl von Slicer2
    SC2.ClearAllFilters
'Set einzelne Elt vom Slicer 2 auf Basis Auswahl Slicer 1
    For Each SI In SC1.SlicerItems
        SC2.SlicerItems(SI.Value).Selected = SI.Selected
    Next SI
End Sub
Du musst schauen, wie die Slicer bei Dir benannt sind ("Datenschnitt_1" sicher nicht):
Sub Slicer_auflisten()
Dim SC As SlicerCache
Dim P As PivotTable
    For Each SC In ActiveWorkbook.SlicerCaches
        Debug.Print SC.Name, SC.SourceName
        For Each P In SC.PivotTables
            Debug.Print vbTab & P.Name
        Next
    Next
End Sub
Ergbnisse werden im Direktfenster angezeigt.

Viel Erfolg
Yal

Betrifft: AW: Pivot-Filter aus Zelle steuern
von: Sara
Geschrieben am: 02.10.2020 12:05:34

Das heißt, ich erstelle auch für die 3. Pivot, die aus dem 2. Datensatz stammt einen Datenschnitt.
Habe so dann zwei Datenschnitte, die ich synchronisieren kann.
Nach Auswahl beim 1. Datenschnitt führe ich das von dir beschriebene Makro aus und dadurch wird automatisch beim 2. Datenschnitt dieselbe Nummer ausgewählt?

Ich probiere das nachher mal aus!
Aber vermutlich wird dadurch die Auswahl auch nicht schneller gehen, wie wenn ich einfach bei zwei Datenschnitte manuell dasselbe auswähle...

Betrifft: AW: Pivot-Filter aus Zelle steuern
von: Yal
Geschrieben am: 02.10.2020 14:36:25

Tja. Das ist die Grundfrage alle Programmierer: Baum fällen oder Axt schärfen?

Im dem Fall spielt auch die Komplexität der Auswahl und die Stabilität des Prozess:
nur ein Element auf nur ein Pivotfeld, kannste sparen.
Mehrere Elementen in mehreren "Dimensionen", mit der Notwendigkeit, dass es zusammenpasst: programmieren.

VG
Yal