Hallo,
ich möchte eine Pivot Tabelle anhand eines Arrays Filtern. Ich habe diverse Lösungsansätze probiert, die mich aber alle nicht zufriedenstellen.
Versuch Nr.1 sah so aus:
In diesem Makro wird jedes PivotItem mit meinem Array verglichen. Gibt es keine Übereinstimmung und das Element ist eingeblendet, wird das Element ausgeblendet (.Visible= False). Anschließend werden die Werte des Arrays eingeblendet. Also erst alle unerwünschten Elemente ausblenden, dann die restlichen erwünschten Elemente einblenden.
Sub Filter_PivotTable_Using_Array()
On Error Resume Next
Dim dblStart As Double: dblStart = Timer
Dim varItemList() As Variant
Dim strItem1 As String
Dim i As Long
'Mein Array mit den Werten "1" und "2" nach denen ich Filtern möchte
varItemList = Array("1", "2")
strItem1 = varItemList(LBound(varItemList))
With Sheets("LiromLiveData").PivotTables("PivotTable1").PivotFields("1")
.PivotItems(strItem1).Visible = True
For i = 1 To .PivotItems.Count
'Blende nicht gewünschte Items aus
If .PivotItems(i) <> strItem1 And .PivotItems(i).Visible = True Then
.PivotItems(i).Visible = False
End If
Next i
'Blende Werte meines Arrays ein
For i = LBound(varItemList) + 1 To UBound(varItemList)
.PivotItems(varItemList(i)).Visible = True
Next i
End With
End Sub
Das Problem bei diesem Makro ist, dass in einer Schleife jedes nicht gewünschte Pivot Element ausgeblendet wird. Das ist sehr zeitintensiv bei meiner Pivottabelle mit 1600 Einträgen.
Versuch Nr. 2 sah so aus:
ActiveSheet.PivotTables("PivotTable1").PivotFields("1").PivotFilters.Add Type:=xlCaptionEquals, Value1:="1"
Hier ist das Problem, dass ich nur ein Wert auswählen kann. Auch die Haken sind in der Pivot Tabelle nach dem Ausführen noch gesetzt. Es wird aber nur das eine Element angezeigt was sehr komisch ist. Ich hoffe ihr versteht was ich meine.
Mein Wunsch wäre eine Funktion, die alle Elemente ausblendet (ich weiß ein Element der Pivot muss eingeblendet bleiben. Wenn ich das eine Element bestimmen könnte wär das für mich auch i.O).
Danach könnte ich die einzelnen von mir festgelegten Elemente einblenden.
Vielen Dank schon mal im Voraus
|