Bonjour,
Je ne pense pas qu'il soit possible d'aller plus vite que ceci:
For Each monPivIt In .PivotItems
If monPivIt.Name = Mavariable Then
monPivIt.Visible = True
Else
monPivIt.Visible = False
End If
Next
et tu laisses tomber la partie précédente
For Each monPivIt In .PivotItems
monPivIt.Visible = True
Next
Le problème, comme tu le sais probablement, est que le filtre doit avoir au moins une valeur sélectionnée. Il faut donc s'assurer que la variable "MaVariable" soit valide.
Personnellement, j'utilise une boucle comme suit, mais ce n'est probablement pas plus rapide...
For I = 1 To .PivotItems.Count
If .PivotItems.Item(I) = MaVariable Then
.PivotItems.Item(I).Visible = True
Else
.PivotItems.Item(I).Visible = False
End If
Next
MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI