Attribuer une couleur à un chiffre

Tibools

XLDnaute Nouveau
Chers maitres en art Excelien,

Mon problème est vraiment simple mais il sort déjà des capacités de la mise en forme automatique.

En écrivant un chiffre par case (je fais une sorte de relevé topographique), je souhaiterai donner un relief instantanné aux cases en les colorant : une couleur = une altitude.

Je voudrait assigner :
- au chiffre 0 la couleur blanche
- au chiffre 1 la couleur gris 20%
- au chiffre 2 la couleur gris 40%
- au chiffre 3 la couleur gris 60%
- au chiffre 4 la couleur gris 80%
- au chiffre 5 la couleur noir

Il serait idéal de pouvoir assigner la couleur
complémentaire pour le texte: le chiffre écris en blanc pour une case noir et le texte en noir pour une case blanche.

Merci d'avance pour le coup de main...

PS: En me donnant un coup de main, vous aidez un petit jeu étudiant à se développer...
 

CBernardT

XLDnaute Barbatruc
Bonjour Tibools, LsL et le forum,

places la macro suivante dans le module de feuille. Dés qu'un changement interviendra dans la plage ('A1:B20'), la couleur changera.

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, Range('A1:B20')) Is Nothing Then
For Each cell In Target
If cell.Value = '' Then
cell.Interior.ColorIndex = xlNone
ElseIf cell.Value = 0 Then
cell.Interior.ColorIndex = 2
ElseIf cell.Value = 1 Then
cell.Interior.ColorIndex = 15
ElseIf cell.Value = 2 Then
cell.Interior.ColorIndex = 48
ElseIf cell.Value = 3 Then
cell.Interior.ColorIndex = 16
ElseIf cell.Value = 4 Then
cell.Interior.ColorIndex = 56
ElseIf cell.Value = 5 Then
cell.Interior.ColorIndex = 1
End If
Next
End If

End Sub

Cordialement

Bernard
 

globinours

XLDnaute Junior
Bonjour Lsl, Tibools, le forum

Tu peux essayer çà:

Private Sub Worksheet_Change(ByVal Target As Range)
ligne = Target.Row
colonne = Target.Column
If Target.Value = 0 Then Target.Interior.ColorIndex = 2
If Target.Value = 1 Then Target.Interior.Color = RGB(221, 221, 221)
If Target.Value = 2 Then Target.Interior.Color = RGB(178, 178, 178)
If Target.Value = 3 Then Target.Interior.Color = RGB(128, 128, 128)
If Target.Value = 4 Then Target.Interior.Color = RGB(80, 80, 80)
If Target.Value = 5 Then Target.Interior.ColorIndex = 1
End Sub

Puis modifie les valeurs dans RGB pour obtenir tes niveaux de gris.
Cette macro est ta mettre dans le module de ta feuille.
 
D

Danix

Guest
Oups désolé pas de fichier joint [file name=MetEnCouleursV1.zip size=11228]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/MetEnCouleursV1.zip[/file]
 

Pièces jointes

  • MetEnCouleursV1.zip
    11 KB · Affichages: 302

myDearFriend!

XLDnaute Barbatruc
Bonjour Tibools, LsL, CBernardT, globinours, Danix,

Parmi toutes ces possibilités, j'en ajoute une issue du fil de discussion Lien supprimé (voir le fichier joint à mon post du - 26/09/2005 11:36).
Cette macro permet de gérer plus de 3 formats conditionnels et à l'avantage de laisser l'utilisateur adapter facilement ses formats prédéfinis sans avoir à intervenir dans le code VBA...

Cordialement,
 

Tibools

XLDnaute Nouveau
Bonjour à tous, Lsl, le forum

Je vous remercie tous pour votre aide.
Au final j'utilise le fichier de MyDeaurFriend! car je suis trop nul en excel pour copier coller correctement les lignes de code que vous m'avez fourni (merci quand même).

Ah ! Si tous les hommes de cette planète étaient aussi altruistes que vous chers membres de ce forum, it would be even...

Thibaud ;)
 

Discussions similaires