XL 2013 TCD Faire apparaitre le nom du filtre du segment sélectionné dans une cellule

francois95

XLDnaute Nouveau
Bonjour,

J'aimerai faire apparaitre dans des cellules, les filtres sélectionnés dans les différents segments.
L'exemple joint sera peut etre plus parlant.

Je vous remercie par avance

François
 

Pièces jointes

  • faire apparaitre Segment TCD dans une cellule.xlsx
    16.5 KB · Affichages: 4

chris

XLDnaute Barbatruc
Bonjour

  • Soit il faut passer par le modèle de données PowerPivot pour réaliser le TCD et obtenir les valeurs avec des formules cubes
  • Soit il faut tricher avec un second TCD planqué connecté uax même segment. Selon la structure du TCD réel, la possibilité ou non de multi sélection. Là tu as fait très simple...

    1662109148679.png
 

francois95

XLDnaute Nouveau
Bonjour

  • Soit il faut passer par le modèle de données PowerPivot pour réaliser le TCD et obtenir les valeurs avec des formules cubes
  • Soit il faut tricher avec un second TCD planqué connecté uax même segment. Selon la structure du TCD réel, la possibilité ou non de multi sélection. Là tu as fait très simple...
Merci Chris, effectivement l'exemple est très simple. J'ai 11 TCD connectés aux segments, l'idée est de synchroniser tous les segments, de n'en faire apparaitre qu'un seul sur une page menu, et ensuite dans chaque feuille rappeler les filtres sélectionnés. Je viens de découvrir Power Query, je vais tenter PowerPivot :)
 

job75

XLDnaute Barbatruc
Bonjour francois95, chris,

Voyez le fichier .xlsm joint et cette fonction VBA :
VB:
Function Segment(x As String)
Application.Volatile
Dim s As Object
For Each s In ThisWorkbook.SlicerCaches(x).SlicerItems
    If s.Selected Then Segment = Segment & ", " & s.Name
Next
Segment = Mid(Segment, 3)
End Function
Le code doit être placé impérativement dans un module standard.

Formule en F2 à tirer vers la droite =Segment("Segment_"&F1)

A+
 

Pièces jointes

  • faire apparaitre Segment TCD dans une cellule(1).xlsm
    24.4 KB · Affichages: 9

francois95

XLDnaute Nouveau
Bonjour francois95, chris,

Voyez le fichier .xlsm joint et cette fonction VBA :
VB:
Function Segment(x As String)
Application.Volatile
Dim s As Object
For Each s In ThisWorkbook.SlicerCaches(x).SlicerItems
    If s.Selected Then Segment = Segment & ", " & s.Name
Next
Segment = Mid(Segment, 3)
End Function
Le code doit être placé impérativement dans un module standard.

Formule en F2 à tirer vers la droite =Segment("Segment_"&F1)

A+
Merci,
Quand je veux annuler le filtre j'ai ce message d'erreur
1662113143040.png
 

chris

XLDnaute Barbatruc
Bonjour

Ton TCD est basé sur le modèle de données PowerPivot : les segments de TCD issu du modèle de données ne fonctionnent pas de la même façon

En VBA
VB:
Function Segment(x As String)
Application.Volatile
Dim ListeJ
Dim Seg As String, i As Integer
   
    ListeJ = ActiveWorkbook.SlicerCaches(x).VisibleSlicerItemsList
    For i = 1 To UBound(ListeJ)
        Seg = Mid(ListeJ(i), InStr(ListeJ(i), "&") + 2)
        Segment = Segment & IIf(i > 1, ", ", "") & Left(Seg, Len(Seg) - 1)
    Next i
End Function

Je posterai plus tard pour les fonctions CUBE...
 
Dernière édition:

Discussions similaires

Réponses
6
Affichages
630
Réponses
16
Affichages
647

Statistiques des forums

Discussions
315 127
Messages
2 116 538
Membres
112 773
dernier inscrit
claire3651