[Résolu] Filtres sur tous les TCD d'un classeur....

Kiriko

XLDnaute Occasionnel
Bonjour à tous !
Je cherche à manipuler les TCD d'un classeur :
Je souhaite tout d'abord rafraichir tous les TCD du classeur, supprimer tous les filtres de la colonne A (tout afficher), puis dans un second temps filtrer (ne plus afficher) les "(vide)".
Mais cela, sur tous les TCD du classeur complet, sans avoir à afficher les feuilles, ni nommer précisément chacun des TCD (afin que le code fonctionne même si on rajoute d'autres TCD, et/ou que l'on puisse l'appliquer sur n'importe quel classeur comportant des TCD)
Ci-joint un fichier exemple (complètement fantaisiste, c'est pour l'exemple).

Merci par avance !
Cordialement,
 

Pièces jointes

  • Pour TCD exemple.xlsm
    36.8 KB · Affichages: 62
Dernière édition:

tototiti2008

XLDnaute Barbatruc
Re : Filtres sur tous les TCD d'un classeur....

Bonjour Kiriko,

à tester

Code:
Dim Pt As PivotTable, Pf As PivotField, Sh As Worksheet
ThisWorkbook.RefreshAll
For Each Sh In ThisWorkbook.Worksheets
    For Each Pt In Sh.PivotTables
        For Each Pf In Pt.PivotFields
            If Not IsError(Pf.Position) Then
            If Pf.Position = 1 And Pf.Orientation = 1 Then
            Pf.ClearManualFilter
            Pf.PivotItems("(vide)").Visible = False
            End If
            End If
        Next Pf
    Next Pt
Next Sh
 

Kiriko

XLDnaute Occasionnel
Re : Filtres sur tous les TCD d'un classeur....

Bonjour tototiti2008
Merci beaucoup !
Cela marche impeccablement, à la différence prêt qu'il faut bizarrement remplacer :
Pf.PivotItems("(vide)").Visible = False
par
Pf.PivotItems("(blank)").Visible = False

Encore merci !!
 

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 926
Membres
101 841
dernier inscrit
ferid87