Bonjour,
Je cherche à établir des filtres communs sur plusieurs TCD (sources différentes), filtre selectionné à l'aide de segment... Jusqu'ici tout va bien.
Le souci est que j'ai beaucoup de TCD et de variables. Je voudrais donc rajouter au code ci-dessous une condition du genre IF Target.PivotFileds.Name = "Année" Then ...Cela limitera les traitements (notemment en terme de durée)
Jespère avoir été assez explicite...

Merci d'avance. Code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
Private Sub Workbook_SheetPivotTableUpdate(ByVal Sh As Object, ByVal Target As PivotTable)
 
If Sh.Name = "Feuil1" And Target.Name = "TCDPilote" Then
Application.EnableEvents = False
 
'--------------------------------ANNEES-----------------------------------------------------
'--------------------------------------------------------------------------------------------
'Selectionne toute les possibilités des TCD connecté
ActiveSheet.PivotTables("TCDPilote2").PivotFields("Année").CurrentPage = "(All)"
ActiveSheet.PivotTables("TCD_SV").PivotFields("Année").CurrentPage = "(All)"
 
For Each Iitem In ActiveWorkbook.SlicerCaches("Segment_Année1").SlicerItems
If Iitem.Selected = True Then
On Error Resume Next
ActiveSheet.PivotTables("TCDPilote2").PivotFields("Année").PivotItems(Iitem.Name).Visible = True
ActiveSheet.PivotTables("TCD_SV").PivotFields("Année").PivotItems(Iitem.Name).Visible = True
Else
On Error Resume Next
ActiveSheet.PivotTables("TCDPilote2").PivotFields("Année").PivotItems(Iitem.Name).Visible = False
ActiveSheet.PivotTables("TCD_SV").PivotFields("Année").PivotItems(Iitem.Name).Visible = False
End If
Next
 
'--------------------------------CLIENTS-----------------------------------------------------
'--------------------------------------------------------------------------------------------
'Selectionne toute les possibilités des TCD connecté
ActiveSheet.PivotTables("TCDPilote2").PivotFields("Client").CurrentPage = "(All)"
ActiveSheet.PivotTables("TCD_SV").PivotFields("Client").CurrentPage = "(All)"
 
For Each Iitem In ActiveWorkbook.SlicerCaches("Segment_Client1").SlicerItems
If Iitem.Selected = True Then
On Error Resume Next
ActiveSheet.PivotTables("TCDPilote2").PivotFields("Client").PivotItems(Iitem.Name).Visible = True
ActiveSheet.PivotTables("TCD_SV").PivotFields("Client").PivotItems(Iitem.Name).Visible = True
Else
On Error Resume Next
ActiveSheet.PivotTables("TCDPilote2").PivotFields("Client").PivotItems(Iitem.Name).Visible = False
ActiveSheet.PivotTables("TCD_SV").PivotFields("Client").PivotItems(Iitem.Name).Visible = False
End If
Next