Bonjour,
Voici un essai de code en supposant que tous vos TCD contiennent un champ "NOM." :
Sub AA()
With ActiveSheet
.Parent.RefreshAll
For Each pt In .PivotTables
ref = pt.SourceData
With pt.PivotFields("NOM.")
ref = ref & "[" & .SourceName & "]"
bVisible = Not .AllItemsVisible
For Each Pi In .PivotItems
pival = Replace(Pi.Value, "(blank)", "")
If Application.CountIf(Range(ref), pival) = 0 Then
Pi.Delete
Else
If pival = "(blank)" Then Pi.Visible = bVisible
End If
Next Pi
End With
Next pt
End With
End Sub
Ca permet d'afficher/masquer les vides.
En même temps, le TCD est rafraichi.
Il y a probablement moyen de faire mieux...
Cdlt,