VBA: Développer/Réduire un TCD au 1er niveau

Bonsoir à tous,

Après plusieurs heures de recherche, je suis malheureusement dans une impasse avec mes faibles connaissances VBA.

Je souhaite une macro pour développer/réduire mon TCD au 1er niveau.

Voici la macro que j'utilise:

Sub Hide_Show_Details()
Dim pf As PivotField
    Set pf = ActiveSheet.PivotTables(1).PivotFields("FRUIT")
    If pf.PivotItems(2).ShowDetail Then pf.ShowDetail = False Else pf.ShowDetail = True
    Set pf = Nothing

End Sub

"FRUIT" étant le champ du 1er niveau que je souhaite développer/réduire.

ça doit être tout simple, mais j'avoue que je coince

Merci pour votre aide !

Bonjour,

Merci de joindre un fichier à ta demande.

Cdlt.

Bonjour Jean-Eric,

Malheureusement ce n'est pas possible.

Ma macro masque toutes les lignes, ce que je ne souhaite pas.

Je suis parti sur une autre macro qui fait ce que je lui demande pour 1 "items"

  ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("FRUIT"). _
        PivotItems("fruit1").ShowDetail = True

Par contre le nom de l'Items "fruit1" peut changer...et il y'en a d'autres qui vont s'ajouter.

Existe-il une solution pour tous les sélectionner ? Ou de passer avec un gestionnaire de nom, sachant que la liste des "FRUIT" seront saisis à un endroit.

Merci d'avance !

Re,

A défaut d'un fichier, je n'ai crée un.

Regarde cette première proposition et redis moi.

Cdlt.

177nico1083.xlsm (40.38 Ko)

Bonjour Jean-Eric,

je suis tombé sur le sujet car je cherchais la même fonction, et ta proposition peut être simplifiée en 1 ligne de code par macro :

Private Sub cmdAfficher_Click()
Me.PivotTables("TCD_1").PivotFields("Produits").ShowDetail = True
End Sub
'=================================================
Private Sub cmdRaz_Click()
Me.PivotTables("TCD_1").PivotFields("Produits").ShowDetail = False
End Sub

Si ça peut servir aux prochains qui tomberont sur le sujet ;-)

Rechercher des sujets similaires à "vba developper reduire tcd 1er niveau"