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.
merci pour votre aide
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
Hermès
Partager