|
|
|
|
cybergate, le jeudi 13 mars 2008 à 14:54:14Bonjour,
Je n'ai pas la réponse à ta question concernant la mise en forme conditionnelle, mais avec le code Visual Basic ci-dessous (macro), cela devrait faire ce que tu désires: Sub color_cellule()
Dim Valeur As Integer
Dim Index As Long
For Index = 1 To Range("a65536").End(xlUp).Row
Valeur = Cells(Index, 1).Value
Cells(Index, 1).Interior.ColorIndex = 25 + Valeur
Next Index
End Sub
Par chaque cellule, la fonction met la couleur intérieur égale à 25 (dans mon exemple, mais cela peut être autre chose) plus la valeur de la cellule, c-à-d 26 pour 1, 27 pour 2,.... 35 pour 10 ..... J'espère que cela pourra t'aider. A plus Le plus difficile, ce n'est pas d'obtenir ce que l'on désire mais d'aimer ce que l'on a obtenu. Proverbe belge |
En complément de Christounet, si tu veux choisir les codes couleurs en fonctions des valeurs des cellules, tu peux coller ça dans le code de ta feuille :
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim n, m As Integer For n = 1 To ActiveSheet.UsedRange.Rows.Count For m = 1 To ActiveSheet.UsedRange.Columns.Count Dim val val = Cells(n, m).Value Select Case val Case 1 Cells(n, m).Interior.ColorIndex = 3 Case 2 Cells(n, m).Interior.ColorIndex = 5 Case 3 Cells(n, m).Interior.ColorIndex = 7 Case 4 Cells(n, m).Interior.ColorIndex = 6 Case 5 Cells(n, m).Interior.ColorIndex = 4 Case 6 Cells(n, m).Interior.ColorIndex = 2 Case 7 Cells(n, m).Interior.ColorIndex = 8 Case 8 Cells(n, m).Interior.ColorIndex = 9 Case 9 Cells(n, m).Interior.ColorIndex = 10 Case 10 Cells(n, m).Interior.ColorIndex = 11 End Select Next Next End Sub Have fun!! :-) |
Merci les gars, de cette réponse très rapide.
Je n'ai que peu de notions de VBA, et je cherchais plutôt des astuces par fonctions intégrées à Excel. Cela dit, je comprends à peu près la proposition de Christounet (sans maîtriser la syntaxe, mais Google aidera), et moins celle de Fxbrg. Là où je suis un peu crétin, c'est que j'aurais dû expliquer mon problème plus à fond. En fait, chaque couleur correspond à un intervalle, et non à un nombre: ex: toutes les cases contenant une valeur comprise entre 1,01 et 1,5 doivent être en rouge, celles entre 1.51 et 2 doivent être en vert,etc., le tout pour 10 couleurs différentes. Désolé... Matthieu. |
Pas très joli mais ça marche... :-)
Joue avec les codes couleurs et les intervalles... Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim n, m As Integer For n = 1 To ActiveSheet.UsedRange.Rows.Count For m = 1 To ActiveSheet.UsedRange.Columns.Count Dim val val = Cells(n, m).Value If val > 6 Then Cells(n, m).Interior.ColorIndex = 10 Else If val > 5.5 Then Cells(n, m).Interior.ColorIndex = 9 Else If val > 5 Then Cells(n, m).Interior.ColorIndex = 8 Else If val > 4.5 Then Cells(n, m).Interior.ColorIndex = 7 Else If val > 4 Then Cells(n, m).Interior.ColorIndex = 6 Else If val > 3.5 Then Cells(n, m).Interior.ColorIndex = 5 Else If val > 3 Then Cells(n, m).Interior.ColorIndex = 4 Else If val > 2.5 Then Cells(n, m).Interior.ColorIndex = 3 Else If val > 2 Then Cells(n, m).Interior.ColorIndex = 2 Else If val > 1.5 Then Cells(n, m).Interior.ColorIndex = 1 Else If val > 1 Then Cells(n, m).Interior.ColorIndex = 0 End If End If End If End If End If End If End If End If End If End If End If Next Next End Sub Have fun!! :-) |
Bonjour,
Une autre version du code Sub color_cellule()
Dim Ligne As Long
Dim Colonne As Long
For Ligne = 1 To ActiveSheet.UsedRange.Rows.Count
For Colonne = 1 To ActiveSheet.UsedRange.Columns.Count
Select Case Cells(Ligne, Colonne).Value
Case Is < 1.51
Cells(Ligne, Colonne).Interior.ColorIndex = 32
Case Is < 2.01
Cells(Ligne, Colonne).Interior.ColorIndex = 35
Case Is < 2.51
Cells(Ligne, Colonne).Interior.ColorIndex = 37
Case Is < 3.01
Cells(Ligne, Colonne).Interior.ColorIndex = 39
End Select
Next Colonne
Next Ligne
End Sub
Pour chaque ligne (Row), pour chaque colonne (Columns), on teste la valeur , si c'est plus petit que 1.51, couleur 32 , plus petit que 2.01 couleur 35, .... Pour la valeur des couleurs, tu trouveras ici la correspondance entre la couleur et le nombre (C'est en anglais mais les couleurs sont visibles). A plus Le plus difficile, ce n'est pas d'obtenir ce que l'on désire mais d'aimer ce que l'on a obtenu. Proverbe belge |
Merci les gars, je m'y attaque ce week-end.
Matthieu. |