Hallo Erdbrink,
warum stellst du deine Frage nicht gleich etwas präziser?
Die Pivottabellen haben leider die unangenehme Eigenschaft, dass man nicht alle Items eines Feldes auf unsichtbar setzen kann und danach nur die gewünschten einblendet.
Es funktioniert nur umgekehrt. Erst alle einblenden (Filter zurücksetzen), dann alle unerwünschten ausblenden.
Das kann man per Makro in Schleifen erledigen.
Gruß
Franz
'Erstellt unter Excel 2010
Sub Filtern1()
'Filterwerte in Array vorgeben
Call Pivot\_Filter\_Setzen(pvTab:=Worksheets("Tabelle2").PivotTables(1), strField:="Name", \_
arrWerte:=Array("Name05", "Name06", "Name12"))
End Sub
Sub Filtern2()
'Filterwerte in Zellbereich vorgeben
Call Pivot\_Filter\_Setzen(pvTab:=Worksheets("Tabelle2").PivotTables(1), strField:="Name", \_
arrWerte:=Worksheets("Tabelle1").Range("C1:C10"))
End Sub
Sub Pivot\_Filter\_Setzen(pvTab As PivotTable, strField As String, arrWerte)
'
Dim varItem, pvField As PivotField, pvItem As PivotItem, bolVisible As Boolean
Dim StatusCalc As Long
On Error GoTo Fehler
pvTab.RefreshTable
'Setzen des zu filternden Feldes
Set pvField = pvTab.PivotFields(strField)
With Application
.ScreenUpdating = False
StatusCalc = .Calculation
.Calculation = xlCalculationManual
.EnableEvents = False
End With
With pvField
.ClearAllFilters
For Each pvItem In .VisibleItems
bolVisible = False
For Each varItem In arrWerte
If pvItem.Name = varItem Then
bolVisible = True
End If
Next
If bolVisible = False Then pvItem.Visible = bolVisible
Next
End With
Fehler:
With Err
Select Case .Number
Case 0 'Alles OK
Case Else
MsgBox "Fehler-Nr.: " & .Number & vbLf & .Description
End Select
End With
With Application
.ScreenUpdating = True
.Calculation = StatusCalc
.EnableEvents = True
End With
End Sub