Pivot-Tabelle filtern : Ansatz per VBA
19.11.2009 14:00:53
NoNet
Hallo Mike,
das lässt sich per VBA lösen.
Hier ein kleines Beispiel : Auf dem aktuellen Tabellenblatt wird die 1.PivotTabelle nach dem Zeilenfeld "Ort" gefiltert. Es werden nur die Orte angezeigt, die den Wortteil "burg" enthalten (z.B. Augsburg, Burghausen, Freiburg, Hamburg, Wolfsburg, etc.), alle anderen Zeilen werden ausgeblendet :
Option Explicit
'19.11.2009, NoNet - www.excelei.de
Sub PivotFiltern()
Dim pivT As PivotTable, pivFeldZ As PivotField, pivItem As PivotItem
Set pivT = ActiveSheet.PivotTables(1) 'Erste PivotTabelle des Blattes
Set pivFeldZ = pivT.RowFields("Ort") 'Zeilenfeld "Ort"
For Each pivItem In pivFeldZ.PivotItems
'"burg" bitte in Kleinbuchstaben angeben !!
If InStr(LCase(pivItem), "burg") Then 'Wenn der Ort "burg" enthält
pivItem.Visible = True 'Ort anzeigen
Else
pivItem.Visible = False 'Ansonsten : Ort ausblenden
End If
Next
End Sub
Sub PivotAlleAnzeigen()
'Zeigt alle Orte an und löscht nicht mehr existierende Orte aus der Auswahl
Dim pivT As PivotTable, pivFeldZ As PivotField, pivItem As PivotItem
Set pivT = ActiveSheet.PivotTables(1) 'Erste PivotTabelle des Blattes
Set pivFeldZ = pivT.RowFields("Ort") 'Zeilenfeld "Ort"
For Each pivItem In pivFeldZ.PivotItems
If pivItem.RecordCount > 0 Then
pivItem.Visible = True 'Ort anzeigen
Else
pivItem.Delete 'Ort löschen, wenn kein Datensatz dazu existiert
End If
Next
End Sub
Beachte, dass der zu suchende Wortteil (hier: "burg") im Code in KLEINBUCHSTABEN angegeben werden muss !
Gruß, NoNet