Bonjour, pour remplir un tableau de bord j'utilise les données de 4 TCD dont les champs de lignes sont identique, pour ne pas avoir a refaire la même selection sur les 4 TCD j'aurais aimé utilisé une macro qui copie les choix d'un slicer vers un autre.
J'ai presque trouvé mon bonheur ici:http://www.developpez.net/forums/d13...t-meme-source/ mais bien sur si j'ouvre un post c'est qu'il y a des problèmes ...

Voici le code que j'ai utilisé:
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
Sub slicer_copie()
 For Each Sh In ThisWorkbook.Sheets
        For Each TCD In Sh.PivotTables
            With Sh.PivotTables(TCD.Name)
            .ManualUpdate = True
            End With
        Next
    Next

        Application.EnableEvents = False
        'ligne suivante à répéter pour chaque autre segment en adaptant le nom
        ActiveWorkbook.SlicerCaches("Slicer_POLICE_PAYS").ClearManualFilter
        ActiveWorkbook.SlicerCaches("Slicer_POLICE_PAYS1").ClearManualFilter
        ActiveWorkbook.SlicerCaches("Slicer_POLICE_PAYS3").ClearManualFilter
        For Each Iitem In ActiveWorkbook.SlicerCaches("Slicer_POLICE_PAYS2").SlicerItems
        'ligne suivante à répéter pour chaque autre segment en adaptant le nom
             ActiveWorkbook.SlicerCaches("Slicer_POLICE_PAYS").SlicerItems(Iitem.Name).Selected = Iitem.Selected
             ActiveWorkbook.SlicerCaches("Slicer_POLICE_PAYS1").SlicerItems(Iitem.Name).Selected = Iitem.Selected
             ActiveWorkbook.SlicerCaches("Slicer_POLICE_PAYS3").SlicerItems(Iitem.Name).Selected = Iitem.Selected
        Next
        
         'ligne suivante à répéter pour chaque autre segment en adaptant le nom
        ActiveWorkbook.SlicerCaches("Slicer_TYPE_CLIENT").ClearManualFilter
        ActiveWorkbook.SlicerCaches("Slicer_TYPE_CLIENT1").ClearManualFilter
        ActiveWorkbook.SlicerCaches("Slicer_TYPE_CLIENT3").ClearManualFilter
        For Each Iitem In ActiveWorkbook.SlicerCaches("Slicer_TYPE_CLIENT2").SlicerItems
        'ligne suivante à répéter pour chaque autre segment en adaptant le nom
             ActiveWorkbook.SlicerCaches("Slicer_TYPE_CLIENT").SlicerItems(Iitem.Name).Selected = Iitem.Selected
             ActiveWorkbook.SlicerCaches("Slicer_TYPE_CLIENT1").SlicerItems(Iitem.Name).Selected = Iitem.Selected
             ActiveWorkbook.SlicerCaches("Slicer_TYPE_CLIENT3").SlicerItems(Iitem.Name).Selected = Iitem.Selected
        Next
        
         'ligne suivante à répéter pour chaque autre segment en adaptant le nom
        ActiveWorkbook.SlicerCaches("Slicer_TC_NOM").ClearManualFilter
        ActiveWorkbook.SlicerCaches("Slicer_TC_NOM1").ClearManualFilter
        ActiveWorkbook.SlicerCaches("Slicer_TC_NOM3").ClearManualFilter
        For Each Iitem In ActiveWorkbook.SlicerCaches("Slicer_TC_NOM2").SlicerItems
        'ligne suivante à répéter pour chaque autre segment en adaptant le nom
             ActiveWorkbook.SlicerCaches("Slicer_TC_NOM").SlicerItems(Iitem.Name).Selected = Iitem.Selected
                'bloque ici
             ActiveWorkbook.SlicerCaches("Slicer_TC_NOM1").SlicerItems(Iitem.Name).Selected = Iitem.Selected
                  ou là
             ActiveWorkbook.SlicerCaches("Slicer_TC_NOM3").SlicerItems(Iitem.Name).Selected = Iitem.Selected
              ou là
        Next
For Each Sh In ThisWorkbook.Sheets
        For Each TCD In Sh.PivotTables
            With Sh.PivotTables(TCD.Name)
            .ManualUpdate = False
            End With
        Next
    Next
        Application.EnableEvents = True
End Sub
Pour les deux premiers slicers je n'ai pas eu de problèmes, mais pour le troisième (et le 4ème) il me met l'erreur "invalid procedure call or argument" a des lignes différentes suivant le choix dans le slicer.
Quelqu'un saurait-il me dire pourquoi?

Merci d'avance.