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 PowerPivotBonjour
- 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...
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
Merci,Bonjour francois95, chris,
Voyez le fichier .xlsm joint et cette fonction VBA :
Le code doit être placé impérativement dans un module standard.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
Formule en F2 à tirer vers la droite =Segment("Segment_"&F1)
A+
Cela en ferait un 12ème mais avec les réserves énoncées...Merci Chris, effectivement l'exemple est très simple. J'ai 11 TCD connectés aux segments
Cette nouvelle question n'a rien à voir avec le problème posé au post #1.
C'est ton message en cellules fusionnées qui bloque l'extension du TCD quand tu défiltres
Merci Chris, Est-ce que cela fonctionne aussi avec une chronologie?C'est ton message en cellules fusionnées qui bloque l'extension du TCD quand tu défiltres
Vire le contenu et la fusion de ton pavé jaune
Cela ? La solution VBA ou PowerPivot ? C'est faisable mais pas les mêmes codes ou formules...Est-ce que cela fonctionne aussi avec une chronologie
VBA pour le moment, je ne suis pas encore à PowerpivotRE
Cela ? La solution VBA ou PowerPivot ? C'est faisable mais pas les mêmes codes ou formules...
Merci Chris pour ton aide aujourd’hui.
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