Bonjour Juju, bonjour le forum,
Essaie comme ça :
Sub Macro1()
Dim C As Worksheet 'déclare la variable C (onglet des Couleurs)
Dim R As Worksheet 'déclare la variable R (onglet des Résultats)
Dim PL As Range 'déclare la variable PL (PLage)
Dim CEL As Range 'déclare la variable CEL (CELlule)
Dim I As Byte 'déclare la variable I (Incrément)
Dim TC(1 To 4) As Variant 'déclare le tableau de 4 variables TC (Tableau des Couleurs)
Dim CC(1 To 4) As Integer 'déclare le tableau de 4 variables CC (Compteur des Couleurs)
Set C = Worksheets("Feuil2") 'définit l'onglet C
Set R = Worksheets("Feuil1") 'définit l'onglet R
Set PL = C.Range("A5").CurrentRegion 'définit la plage PL
Set PL = PL.Offset(1, 0).Resize(PL.Rows.Count - 1) 'redéfinit PL sans la première ligne
For I = 1 To 4 'boucle sur 4 lignes
TC(I) = R.Cells(I, "C").Interior.Color 'définit la couleur TC(I)
Next I 'prochaine ligne
For Each CEL In PL.Rows 'boucle 1 : sur toutes les cellules CEL des lignes de la plage PL
For I = 1 To 4 'boucle 2 : sur les 4 couleurs
'si la couleur de la cellule CEL est égale à la couleur TC(I), incrémente le compteur CC(I), sort de la boucle 2
If CEL.Interior.Color = TC(I) Then CC(I) = CC(I) + 1: Exit For
Next I 'prochaine couleur de la boucle 2
Next CEL 'prochaine cellule de la boucle 1
R.Range("D1").Resize(4, 1) = Application.Transpose(CC) 'renvoie dans D1 redimensionnées le tableau CC transposé
End Sub