Bonjour A tous,

La macro Ecxel suivante bugue

l'outil de débogage surligne cette partie du code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
, colors As Scripting.Dictionary
Code complet :

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
Sub TEST()
Dim rg As Range, cl As Range, colors As Scripting.Dictionary, col As Long, maxnb As Long, colmax As Long, koul
Set rg = Range("c5:l5")
Set colors = New Scripting.Dictionary
For Each cl In rg
    col = cl.Interior.Color
    Select Case col
        Case vbWhite, 8421504:
        Case Else:
            If colors.Exists(col) Then
                colors(col) = colors(col) + 1
            Else
                Call colors.Add(col, 1)
            End If
 
    End Select
Next cl
colmax = 0
maxnb = 0
For Each koul In colors.keys
    If colors(koul) > maxnb Then
        maxnb = colors(koul)
        colmax = koul
    End If
Next koul
Sheets("Synthèse résultats ctrl période").Range("M5").Interior.Color = colmax
End Sub
N'ayant aucune notion de VBA quelqu'un peut-il corriger ce code :-)

L'objectif de la macro est de remplir la cellule M5 de la couleur la plus présente dans les cellules C5:L5.

Exemple :

Exemple : si la cellule C est remplie en vert, la cellule D est remplie en vert, la cellule E est remplie en vert, la cellule F est remplie en vert, la cellule G est remplie en jaune, la cellule H est remplie en jaune, la celluleI est remplie en violet, la cellule J est remplie en rouge, la cellule K est remplie en vert et la cellule L est remplie en marron la cellule M doit être remplie en vert puisqu'il y a 5 cases vertes, 2 jaunes 1 violette et 1 rouge et 1 marron.

Enfin si aucune couleur n'a la majorité ---> laisser la case vide pour que je puisse remplir la cellule après analyse.

Merci par avance pour votre aide.

Cordialement.