Bonjour

je souhaite faire une macro dans excel qui colore une page en fonction de la valeur (texte) la case.
Structure du document:
-un onglet principal contenant une liste de nom/prénom (par ordre alphabetique) en colonne A et un attribut en colonne B (qui prend 5 valeurs fixes via un menus déroulant)
-le second onglet à pour fontion de ranger les noms dans un autre ordre (représentation graphique)

mon problème:
débutant en VBA je j'ai des problème dans mon code, je souhaite dans mon second onglet à partir de la A3 jusqu'a L20 parcourir toutes les cases identifier le noms present dans la case et colorer (les couleur sont presentes dans les case B121 à B126) la case en fonction de l'attribut lier au noms dans le premier onlet.

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
Sub test_couleur()
 
    Const NB_LIGNE As Integer = 20 '20 Ligne
    Const NB_COLONNE As Integer = 12 '12 Ligne
    Dim Icol As Byte
 
    For l = 3 To NB_LIGNE 'l => n° ligne
 
 
        For c = 1 To NB_COLONNE 'c => n° colonne
 
 
 
            Icol = 1
            While Worksheets("Répartition des internes").Cells(c, l).Value <> Worksheets("éléve par ordre alphabetique").Cells(2, 1).Value Or i = 112
            'Worksheets("Répartition des internes").Cells(c, l).Value <> Worksheets("éléve par ordre alphabetique").Cells(2, i).Value
            'Cells(c & l).Interior.Color = Sheets("éléve par ordre alphabetique").Cells(2 & 126).Interior.Color
            Icol = Icol + 1
            Wend
            Icol = Icol - 1
            If Sheets("éléve par ordre alphabetique").Cells(3 & i) = "AUTRE" Then
                Cells(c, l).Interior.Color = Sheets("éléve par ordre alphabetique").Range("B125").Interior.Color
            End If
            If Sheets("éléve par ordre alphabetique").Cells(3 & i) = "BROS/BLAN" Then
                Cells(c, l).Interior.Color = Sheets("éléve par ordre alphabetique").Range("B122").Interior.Color
            End If
            If Sheets("éléve par ordre alphabetique").Cells(3 & i) = "A.BRIAND" Then
                Cells(c, l).Interior.Color = Sheets("éléve par ordre alphabetique").Range("B121").Interior.Color
            End If
            If Sheets("éléve par ordre alphabetique").Cells(3 & i) = "HEINLEX" Then
                Cells(c, l).Interior.Color = Sheets("éléve par ordre alphabetique").Range("B123").Interior.Color
            End If
            If Sheets("éléve par ordre alphabetique").Cells(3 & i) = "BOULLOCHE" Then
                Cells(c, l).Interior.Color = Sheets("éléve par ordre alphabetique").Range("B124").Interior.Color
            Else
                Cells(c, l).Interior.Color = Sheets("éléve par ordre alphabetique").Cells(2 & 126).Interior.Color
            End If
        Next c
    Next l
 
End Sub
merci pour votre aide

Hermès