TCD - SLICERS => code pour lier le tout

poulpor78

XLDnaute Junior
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é :

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.
 

poulpor78

XLDnaute Junior
Re : TCD - SLICERS => code pour lier le tout

Petit EDIT :

J'ai résolu mon problème avec ce code :


ActiveSheet.PivotTables("TCD_MONTH_BU").ManualUpdate = True

Code de MAJ des slicers

ActiveSheet.PivotTables("TCD_MONTH_BU").ManualUpdate = false



Par contre, j'ai un nouveau problème: la solution vient du blocage des mises à jour. Autant je maîtrise maintenant la MAJ d'un TCD, autant, j'ai un cas où il s'agit de la mise à jour d'un tableau.

Cela fait un moment que je tente de stopper la mise à jour de tableau sans y arriver. Il s'agit d'un tableau lié à une vue.

Je tente pour le moment des codes de ce type :

Selection.ListObject.QueryTable.Refresh BackgroundQuery:=False
Selection.ListObject.QueryTable.EnableRefresh = False
Selection.ListObject.QueryTable.CancelRefresh

... rien de bien probant, mon code de mise à jour recalcule tout le temps.

donc je suis toujours à l'écoute pour de l'aide.

Philippe
 

Discussions similaires

Statistiques des forums

Discussions
312 103
Messages
2 085 319
Membres
102 862
dernier inscrit
Emma35400