Excel: Aplatir une mise en forme conditionnel
Fermé
cybergate
Messages postés
5
Date d'inscription
jeudi 13 mars 2008
Statut
Membre
Dernière intervention
28 juillet 2008
-
13 mars 2008 à 14:54
cybergate - 14 mars 2008 à 15:52
cybergate - 14 mars 2008 à 15:52
A voir également:
- Excel: Aplatir une mise en forme conditionnel
- Liste déroulante excel - Guide
- Si et excel - Guide
- Word et excel gratuit - Guide
- Aller à la ligne excel - Guide
- Déplacer une colonne excel - Guide
6 réponses
Christounet
Messages postés
1264
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
29 juillet 2010
1 389
13 mars 2008 à 15:14
13 mars 2008 à 15:14
Bonjour,
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:
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
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
Fxbrg
Messages postés
710
Date d'inscription
samedi 17 mars 2007
Statut
Membre
Dernière intervention
16 novembre 2013
199
13 mars 2008 à 15:18
13 mars 2008 à 15:18
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
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
cybergate
Messages postés
5
Date d'inscription
jeudi 13 mars 2008
Statut
Membre
Dernière intervention
28 juillet 2008
13 mars 2008 à 15:50
13 mars 2008 à 15:50
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.
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.
Fxbrg
Messages postés
710
Date d'inscription
samedi 17 mars 2007
Statut
Membre
Dernière intervention
16 novembre 2013
199
13 mars 2008 à 16:20
13 mars 2008 à 16:20
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
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Christounet
Messages postés
1264
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
29 juillet 2010
1 389
13 mars 2008 à 16:36
13 mars 2008 à 16:36
Bonjour,
Une autre version du code
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
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