Gelöschte Elemente aus PivotTable Auswahl entfernen

Ein bekanntes Problem im Zusammenhang mit PivotTables ist die Tatsache, dass Einträge die aus der Quelldatei für die PivotTable gelöscht wurden, weiterhin im Auswahlfeld der PivotTable vorhanden sind und nicht automatisch entfernt werden.

Dieses Verhalten ist bereits seit Excel 97 bekannt, siehe auch diesen Microsoft-Artikel.

Das Problem kann aber mit einem VBA-Makro beseitigt werden. Erfassen Sie dazu den folgenden VBA-Code in einem Code-Modul:

Sub DeleteOldPivotItemsWB()
'** Löschen von nicht mehr vorhandenen Listeneinträgen in Pivot-Tabellen MSKB (Q202232)
Dim wS             As Worksheet
Dim pt              As PivotTable
Dim pf              As PivotField
Dim pi              As PivotItem
 
'** Errorhandling
On Error Resume Next
 
For Each wS In ActiveWorkbook.Worksheets
  For Each pt In wS.PivotTables
    pt.RefreshTable
    For Each pf In pt.PivotFields
      For Each pi In pf.PivotItems
       If pi.RecordCount = 0 And _
          Not pi.IsCalculated Then
          pi.Delete
       End If
      Next
    Next
  Next
Next
 
'Hier für Excel ab 2002
For Each wS In ActiveWorkbook.Worksheets
  For Each pt In wS.PivotTables
     pt.PivotCache.MissingItemsLimit = xlMissingItemsNone
  Next pt
Next wS
 
End Sub


Der Code stammt aus der Feder von Thomas Ramel.

Ab Excel 2007 steht eine Option zur Verfügung, über die man bestimmen kann, welche Elemente im Pivot-Table Filter angezeigt werden sollen. Um gelöschte Elemente im Filter auszublenden stellen Sie einfach unter PivotTable-Optionen die Option "Anzahl der pro Feld beizubehaltenden Elemente:" auf "keine", siehe Screenshot.

Die Idee zu dem Beitrag kommt aus einer Frage im Forum Office-Fragen.