Filtre automatique dans un tableau croisé dynamique

Bonjour,

Depuis plus que 2 heures, j'essaie de résoudre un problème de filtre automatique dans un code vba mais je n'arrive pas

En fait, mon objectif est de sélectionner tous les éléménts dans le filtre sauf le vide sauf que je n'arrive pas à le faire :

ci-dessous ma partie du code qui ne fonctionne pas :

ActiveSheet.PivotTables("Tableau croisé dynamique4").PivotFields("SIREN"). _

CurrentPage = "(All)"

With ActiveSheet.PivotTables("Tableau croisé dynamique4").PivotFields("SIREN")

.EnableMultiplePageItems = True

.CurrentPage = "(All)"

.PivotItems("(blank)").Visible = False

je vous remercie d'avance si vous pouvez m'aider

A+

Option Explicit
Bonjour,
A tester et adapter à ton fichier, que tu n'as pas joint.
Cdlt.
Public Sub DEMO()
Dim pt As PivotTable
Dim pi As PivotItem

    Application.ScreenUpdating = False

    Set pt = ActiveSheet.PivotTables(1)
    For Each pi In pt.PivotFields("SIREN")
        If pi.Value = "(Blank)" Then pi.Visible = False
    Next pi

    Set pt = Nothing

End Sub

Merci jean-Eric,

je viens de tester votre proposition mais j'ai toujours le même message d'erreur :

Erreur 438 : Propriété ou méthode non gérée par cet object

au niveau de la ligne suivante : For Each pi In pt.PivotFields("SIREN")

Désolé si je n'ai pas pu joindre mon fichier parce qu'il est lourd, confidentiel et c'est compliqué de faire une copie et modifier les données

D'avance, merci

RE,

Tu crées un petit fichier, représentatif de ton souci.

Puis tu le joins...

Pas de bras, pas de chocolat.

Cdlt.

Bonsoir,

Vous avez raison, veuillez trouver ci-joint un exemple simple de mon fichier

Merci d'avance pour votre aide

PS: Mon fichier est beaucoup plus compliqué et comporte des milliers de lignes dynamiques

49test-tcd-auto.xlsx (15.26 Ko)

Bonjour,

Essaie ainsi et redis moi.

Cdlt.

Option Explicit

Public Sub DEMO()
Dim pt As PivotTable, pf As PivotField

    With Application
        .ScreenUpdating = False
        '.EnableEvents = False
    End With

    Set pt = ActiveSheet.PivotTables(1)
    Set pf = pt.PivotFields("SIREN")
    pt.ManualUpdate = True
    With pf
        .ClearAllFilters
        .CurrentPage = "(All)"
        .EnableMultiplePageItems = True
        .PivotItems("(blank)").Visible = False
    End With
    pt.ManualUpdate = False

    'Application.EnableEvents = True

    Set pf = Nothing: Set pt = Nothing

End Sub
Rechercher des sujets similaires à "filtre automatique tableau croise dynamique"