Bonjour,
voici mon problème.
Pour imager, j'ai :
- à gauche, un TCD pour le CA par client
- à droite, un TCD pour le CA par Business Unit
J'aurais voulu créer un segment qui permet de sélectionner les mois pour les deux TCD. Mais il semble que ce soit impossible via une connexion SQL.
Au début, je pensais que c'était une formalité...bien je déchante franchement.
J'ai testé plusieurs choses. Pour le moment, j'ai trouvé :
Ca marche mais c'est lent. En effet, à chaque étape de ma boucle, je me prends un refresh du TCD. Dans ce cas précis, c'est lourd. Par contre, dans d'autres cas, le temps de traitement est rédhibitoire.
Je suis donc parti sur un code du style :
Mais je prends une erreur 5.
J'ai beau essayer de passer par une synchronisation de filtre multiple de TCD plutôt que par segment, je tourne en rond et je ne trouve point.
Donc merci d'avoir pris la peine de me lire. toute direction /idée est bonne à prendre.
voici mon problème.
Pour imager, j'ai :
- à gauche, un TCD pour le CA par client
- à droite, un TCD pour le CA par Business Unit
J'aurais voulu créer un segment qui permet de sélectionner les mois pour les deux TCD. Mais il semble que ce soit impossible via une connexion SQL.
Au début, je pensais que c'était une formalité...bien je déchante franchement.
J'ai testé plusieurs choses. Pour le moment, j'ai trouvé :
Code:
Private Sub Worksheet_PivotTableChangeSync(ByVal Target As PivotTable)
Application.EnableEvents = False
ActiveWorkbook.SlicerCaches("Segment_MONTH2").ClearAllFilters
For i = 1 To ActiveWorkbook.SlicerCaches("Segment_MONTH2").SlicerItems.Count
toto = ActiveWorkbook.SlicerCaches("Segment_MONTH2").SlicerItems(i).Name
ActiveWorkbook.SlicerCaches("Segment_MONTH2").SlicerItems(toto).Selected = ActiveWorkbook.SlicerCaches("Segment_MONTH3").SlicerItems(toto).Selected
Next
Application.EnableEvents = True
end sub
Ca marche mais c'est lent. En effet, à chaque étape de ma boucle, je me prends un refresh du TCD. Dans ce cas précis, c'est lourd. Par contre, dans d'autres cas, le temps de traitement est rédhibitoire.
Je suis donc parti sur un code du style :
Code:
ActiveWorkbook.SlicerCaches("Segment_MONTH2").VisibleSlicerItemsList = ActiveWorkbook.SlicerCaches("Segment_MONTH3").VisibleSlicerItemsList
Mais je prends une erreur 5.
J'ai beau essayer de passer par une synchronisation de filtre multiple de TCD plutôt que par segment, je tourne en rond et je ne trouve point.
Donc merci d'avoir pris la peine de me lire. toute direction /idée est bonne à prendre.