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
 

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas