Filtrage des champs d'un TCD (Tableau Croisé Dynamique) en VBA

Bonjour,

Je suis débutant en VBA , j'ai une feuille dans laquelle j'ai construit un TCD en macro VBA.

La source de données de ce TCD est récupérée dans une deuxième feuille se trouvant dans un répertoire de fichier.

1- Je souhaiterais filtrer les trois (Type Spécificité, Métier du commercial, Unité) par vide , mais ma macro ci-dessous ne fonctionne pas, pourtant ça s'exécute sans aucun souci, le problème quand je vais dans mon TCD je ne vois aucun filtrage sur ces champs.

    ActiveSheet.pivotables("mon tableau croisé dynamique").pivofields("Type Spécificité").ClearAllFilters
    ActiveSheet.pivotables("mon tableau croisé dynamique").pivofields("Type Spécificité").Curren = "(blank)" 'CurrentPage

    ActiveSheet.pivotables("mon tableau croisé dynamique").pivofields("Métier du Commercial").ClearAllFilters
    ActiveSheet.pivotables("mon tableau croisé dynamique").pivofields("Métier du commercial").CurrentPage = "(blank)"

    ActiveSheet.pivotables("mon tableau croisé dynamique").pivofields("Unite").ClearAllFilters
    ActiveSheet.pivotables("mon tableau croisé dynamique").pivofields("Unite").CurrentPage = "(blank)"

2- J'ai le meme problème quand je fais le filtrage sur le champ "Libelé du groupe Perf", la macro s'exécute sans aucun souci , mais quand je vais dans mon TCD je ne vois aucun filtrage sur le champ "Libelé du groupe Perf".

Voici le code:

  ' filtre champs Libellé du Groupe Perf
  ' le filtrage ne sélectionne pas les items spécifiés en objet

  With ActiveSheet.PivotTables("mon tableau croisé dynamique").PivotFields("Libellé du Groupe Perf")

        .PivotItems("Prev PP globale").Visible = True
        .PivotItems("Val Désirio").Visible = True
        .PivotItems("Val Epargne Vie").Visible = True
        .PivotItems("Val Gestion Préconisée").Visible = True
        .PivotItems("Val Ret ind.").Visible = True
        .PivotItems("Conquêtes Part multirisques").Visible = True
        .PivotItems("Conquetes Pro Agri").Visible = True
        .PivotItems("Conquetes Pro ACPS").Visible = True
        .PivotItems("PN IARD HT").Visible = True
        .PivotItems("Nb Auto").Visible = True
        .PivotItems("Nb GAV").Visible = True
        .PivotItems("Nb Habitation").Visible = True
        .PivotItems("Nb Santé ind.").Visible = True
        .PivotItems("Nb GBH").Visible = True

    End With

    'Filtre sur le champ service se trouvant en collonne
    ActiveSheet.PivotTables("mon tableau croisé dynamique").PivotFields("Service").ClearAllFilters
    With ActiveSheet.PivotTables("mon tableau croisé dynamique").PivotFields("Service")
        .PivotItems("Développement 02").Visible = True
        .PivotItems("Développement 08-51").Visible = True
        .PivotItems("Développement 10").Visible = True
        .PivotItems("Développement 51").Visible = True
        .PivotItems("Développement 59 Nord").Visible = True
        .PivotItems("Développement 59 Sud").Visible = True
        .PivotItems("Développement 62").Visible = True
    End With

SVP quelqu'un pourrait m'aider à résoudre ce problème ?

Depuis hier je cherche de gauche à droite pour résoudre ce problème de filtrage mais je n'arrive pas

Si vous avez des idées ou des suggestions à me faire ça va beaucoup m'aider.

En comptant sur votre bonne compréhension et dans l'attente de votre retour , je vous souhaite une excellente journée.

Bien cordialement,

Bonjour,

Pour le 1er exemple, pourquoi ne pas utiliser la même structure que pour le 2nd ?

    ActiveSheet.PivotTables("mon tableau croisé dynamique").PivotFields("Type Spécificité").PivotItems("(blank)").Visible = False

Pour le 2ème exemple, quand tu mets clearallfilters, cela réaffiche toutes tes valeurs. Puis tu demandes à tout un tas de champs d'être affichés. Il y a un truc qui coince là-dessus à mon avis.

Bonjour et bienvenue,
Un petit fichier ?
Cdlt.

21Formatic je vous remercie pour votre retour , j'ai résolu mon premier problème de filtrage par vide , j'ai oublié de mettre "t " au niveau de la méthode "PivotTable"

  ActiveSheet.PivotTables("mon tableau croisé dynamique").PivotFields("Type Spécificité").ClearAllFilters
   ActiveSheet.PivotTables("mon tableau croisé dynamique").PivotFields("Type Spécificité").CurrentPage = "(blank)"

- Je n'arrive toujours pas à résoudre mon deuxième problème , je souhaiterais afficher les éléments du champ "Libellé du Groupe Perf" , ma macro s'exécute bien sans souci, mais en venant dans mon TCD je trouve que le champ" Libellé du Groupe Perf " n'est pas filtré

voici le code ci dessous :

ActiveSheet.PivotTables("mon tableau croisé dynamique").PivotFields("Libellé du Groupe Perf").ClearAllFilters

  With ActiveSheet.PivotTables("mon tableau croisé dynamique").PivotFields("Libellé du Groupe Perf")

        .PivotItems("Prev PP globale").Visible = True
        .PivotItems("Val Désirio").Visible = True
        .PivotItems("Val Epargne Vie").Visible = True
        .PivotItems("Val Gestion Préconisée").Visible = True
        .PivotItems("Val Ret ind.").Visible = True
        .PivotItems("Conquêtes Part multirisques").Visible = True
        .PivotItems("Conquetes Pro Agri").Visible = True
        .PivotItems("Conquetes Pro ACPS").Visible = True
        .PivotItems("PN IARD HT").Visible = True
        .PivotItems("Nb Auto").Visible = True
        .PivotItems("Nb GAV").Visible = True
        .PivotItems("Nb Habitation").Visible = True
        .PivotItems("Nb Santé ind.").Visible = True
        .PivotItems("Nb GBH").Visible = True
    End With

    'Filtre sur le champ service se trouvant en collonne
    ActiveSheet.PivotTables("mon tableau croisé dynamique").PivotFields("Service").ClearAllFilters
    With ActiveSheet.PivotTables("mon tableau croisé dynamique").PivotFields("Service")
        .PivotItems("Développement 02").Visible = True
        .PivotItems("Développement 08-51").Visible = True
        .PivotItems("Développement 10").Visible = True
        .PivotItems("Développement 51").Visible = True
        .PivotItems("Développement 59 Nord").Visible = True
        .PivotItems("Développement 59 Sud").Visible = True
        .PivotItems("Développement 62").Visible = True
    End With

Quand je mets = True aucun élément n'est sélectionné , pourtant la macro s'exécute bien

Et quand je mets = False l'élément spécifié est déselectionné

Auriez-vous des idées à me proposer svp pour résoudre ce problème de filtrage sur le champ "Libellé du Groupe Perf "?

Jean-Eric j'arrive pas à joindre le fichier

Rechercher des sujets similaires à "filtrage champs tcd tableau croise dynamique vba"