Bonjour

Dans un fichier que j'ai construit, j'ai une macro qui a pour vocation de faire des copier/coller spécial valeur + format de cellule.
En parallèle, j'ai une macro qui me permet de créer la fonction Couleur pour m'aider à récupérer la couleur de fond d'une cellule

Mon problème est le suivant, avant de créer la fonction couleur, la macro faisait bien les copier/coller, depuis que j'ai créer par VBA la fonction couleur, la macro s'emmèle les crayons (de couelurs et passe d'une macro à l'autre, voici mon 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
41
42
Sub Cleaner()
'
' Cleaner Macro
'
    ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("ordre"). _
        CurrentPage = "(All)"
    With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("ordre")
        .PivotItems("1").Visible = True
        .PivotItems("(blank)").Visible = True
        .PivotItems("ordre").Visible = True
    End With
    Range("A6:E9").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy
    Sheets("Plan d'action").Select
    Range("A2").Select
    Selection.PasteSpecial Paste:=xlPasteAllUsingSourceTheme, Operation:=xlNone _
        , SkipBlanks:=False, Transpose:=False
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Contrôles").Select
        Range("E6").Select
    Selection.Copy
    Range("E7").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("ordre"). _
        CurrentPage = "(All)"
    With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("ordre")
        .PivotItems("1").Visible = False
        .PivotItems("(blank)").Visible = False
        .PivotItems("ordre").Visible = False
    End With
 
    Application.CutCopyMode = False
End Sub
--------------------------------------------------------------------------------------------------------
Function couleur(Cellule As Range)
    Application.Volatile
    couleur = Cellule.Interior.ColorIndex
End Function

Ce que je ne comprends pas c'est comment excel démarre ma macro Cleaner puis va directement à la fonction en bas du code puis tourne en boucle ... et si je la laisse faire elle finit par supprimer la couleur de toutes les cellules avant de faire un copier/coller.

Pouvez vous m'aider ?