Dim p As PivotItem, i As Integer
For Each p In ActiveSheet.PivotTables("MonTCD").PivotFields("Années").PivotItems
If p.Visible Then i = i + 1
Next p
MsgBox i
J'en étais aussi à ce point; on ne peut pas compter directement, il faut passer par une boucle : ci dessous mon code; le tien est plus propre.
nbPI = 1
For x = 1 To ActiveSheet.PivotTables("TCD1A").PivotFields("Année").PivotItems.Count
If ActiveSheet.PivotTables("TCD1").PivotFields("Année").PivotItems(x).Visible = True then nbPI = nbPI + 1
Next x