PivotTables-VBA

Bonjour,

je suis confronté à la difficulté suivante et je fais appel à un "ami".

Dans un code qui génère des TCD, je souhaite indiquer à Excel que le pivotItems sur lequel il doit filtrer est la TRÉSORERIE.

Code Normal :

ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("NATURE JAL"). _
CurrentPage = "(All)"
' With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
"NATURE JAL")
' .PivotItems("A NOUVEAU ").Visible = False
'.PivotItems("ACHAT").Visible = False
'.PivotItems("IMMOBILISATION").Visible = False
'.PivotItems("OPE. DIVERSES.").Visible = False
'.PivotItems("RESULTAT AUTOM.").Visible = False
'.PivotItems("SALAIRE").Visible = False
'.PivotItems("VENTE").Visible = False
'End With

Dans ce code, Excel filtre sur la trésorerie en rendant les autres items Non visible. Mon problème est relatif au fait que je n'aurais pas toujours dans ma base de données tous les pivotitems indiqués en non visible. A ce moment là mon code se bloquera.

Je souhaite donc dire directement à Excel d'afficher que le PIVOTITEMS voulu.

J'ai essayé la modification suivante mais elle est "foireuse":

ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("NATURE JAL"). _
CurrentPage = "(TRESORERIE)"

Merci d'avance

Bonjour,

Voici un essai :

With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("NATURE JAL")
    for each pi in .pivotitems
        if pi.name <> "TRESORERIE" then pi.visible = false
    next pi
End With

On masque chaque élément différent de TRESO.

Cdlt,

Bonjour,

La propriété PivotField.CurrentPage n'est valable que pour un champ de page.

Donc, essaie ainsi :

With ActiveSheet.PivotTables("Tableau croisé dynamique1").PageFields("NATURE JAL")
    .ClearAllFilters
    .EnableMultiplePageItems = False
    .CurrentPage = "TRESORERIE"
End With

Merci pour vos retours !

Rechercher des sujets similaires à "pivottables vba"