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

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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 🙂
 
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

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
 
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:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
201
  • Question Question
Microsoft 365 recherche idée
Réponses
6
Affichages
778
Réponses
16
Affichages
841
Réponses
10
Affichages
576
Retour