Gestion de couleur en VBA
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:
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