Macro sur segment

jeanyves31

XLDnaute Nouveau
Bonjour à tous

Voila, j'ai un tableau (pas un TCD)
Sur ce tableau, j'ai mis plusieurs segments pour faire différents tri.
J'en ai donc 5, cela va du (fournisseur, Initiale, Catégorie, sous catégorie et enfin le nom du produit par lui même...)

Je souhaiterai mettre un graphique, qui n'est utile que lorsque le tableau est filtré sur le dernier élément. A savoir, le produit, et donc pour suivre l’évolution de son prix.
Je souhaiterai donc pouvoir afficher ce graphique uniquement lorsque je clic (active...) sur ce segment (Produit) en particulier.
J'ai donc vue que je devait utiliser ce code:
ChartObjects("Graphique 8").Visible = True

Mais, ma question, est ou est ce que je doit l'inséré?
Merci
 

chris

XLDnaute Barbatruc
Bonjour

A priori il n'y a aucun événement ni sur le slicer ni sur le filtrage du tableau.
La seule solution à laquelle j'ai pensé c'est d'ajouter une formule à base de SOUS.TOTAL pour une colonne du tableau dans une cellule de la feuille, et dans l'évènement CALCULATE de tester si le segment en question est filtré ou pas.
Adapter tous les noms (feuille, tableau, slicer)
Code:
Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
    If Sh.Name <> "NomFeuille" Then Exit Sub
    For Each sl In Sh.ListObjects("NomTableau").Slicers
        If sl.Name = "NomSlicer" Then
            Sh.ChartObjects("NomGraphique").Visible = Not sl.SlicerCache.FilterCleared
            exit for
        End If
    Next
End Sub
 

Discussions similaires

Réponses
3
Affichages
287
Réponses
6
Affichages
331