Couleur de fond d'une cellule

  • Initiateur de la discussion TheJulien
  • Date de début
T

TheJulien

Guest
J'ai un tableau de notes (de 0 à 20), et j'aimerais changer la couleur de fond de chaque cellule en fonction de son contenu.
C'est à dire couleur C(0) pour 0
couleur C(1) pour 1
etc.
Avec C(n) étant le code d'une couleur que je défini a priori dans une sub
ou encore mieux directement dans la palettes de couleurs d'Excel.
Ce serait également pratique de pouvoir définir la plage sur laquelle il
effectue cette opération de coloration des cellules.
Voilà !
Merci d'avance.
 
B

Bernard

Guest
Bonsoir TheJulien et le forum

L'exemple joint t'apporteras une solution.

Pour changer la plage active, il faut la définir puis modifier la macro pour qu'elle la prenne en compte.

La seconde feuille contient la gamme des couleurs.

Cordialement

Bernard
 

Pièces jointes

  • CouleurSelonValeur.zip
    8.8 KB · Affichages: 28
  • CouleurSelonValeur.zip
    8.8 KB · Affichages: 37
  • CouleurSelonValeur.zip
    8.8 KB · Affichages: 34
@

@+Thierry

Guest
Bonsoir TheJulien ! , TheForum !!

Voici une base de départ, mais les 56 index color ne sont pas tous au top !! (surtout le noir !! lol) enfin !!

Sub Coloring()
Dim Plage As Range, Cell As Range

Set Plage = Range("A1:D10")

For Each Cell In Plage
If Cell.Value <> "" Then
If IsNumeric(Cell.Value) Then
If Cell.Value > 0 And Cell.Value <= 56 Then
Cell.Interior.ColorIndex = Cell.Value
End If
End If
End If
Next

End Sub

Bonne Soirée
@+Thierry
 
@

@+Thierry

Guest
Hello Bernard, re le Julien

Bon on s'est télescopé sur ce coup là lol

Mais sinon ta base est tout à fait ce qu'il faut, ptet on peut simplifier comme ceci :

Sub ColoringTwo()
Dim C As Range

For Each C In Range("Départ")

Select Case C.Value
Case 1 To 5: C.Interior.ColorIndex = 3
Case 6 To 10: C.Interior.ColorIndex = 4
Case 11: C.Interior.ColorIndex = 5
Case 12: C.Interior.ColorIndex = 6
Case 13 To 20: C.Interior.ColorIndex = 7
Case Else: C.Interior.ColorIndex = xlNone
End Select
Next C
End Sub

Bonne Soirée
@+Thierry

PS Bernard Voumfré 100 ligne => "Dim C As Range"
 
B

Bernard

Guest
Rebonsoir

Salut @+Thierry

Ok :-( j'ai pas bien déclaré la variable et je m'exécute pour la punition Snif Snif ...

Sub CentFois()
Dim i As Byte, y As Byte
For i = 1 To 10
For y = 1 To 10
Cells(i, y) = "Dim C as Range"
Next
Next
End Sub


Un remonte-moral pour toi après la démonstration des mauvais élèves que nous sommes ! Lol

A++

Bernard
 

Pièces jointes

  • remontemoral.zip
    1.9 KB · Affichages: 21
@

@+Thierry

Guest
Merci Bernard c'est Gentil,

Il existe la même chose sous Excel tu sais ?

Essaie ceci :

Sub LOL()
Dim LOOL As Variant, LOOOL As Variant, LOOOOL As Variant, LOOOOOL As String

LOOOOOL = InputBox("Entre ton Prénom s'il te plait")
For Each LOOL In Array("Merci", "Merci 1000 fois", "Reconnaissance infinie", _
"éternellement redevable", "Merci Merci Merci", "gracias", "Special Thanks", _
"gracias", "thank you", "kozonom")
For Each LOOOL In Array("extraordinaire", "géniale", "incroyable", "merveilleuse", _
"fantastique", "gentille", "charitable", "intelligente", "unique", "serviable", "polie")
MsgBox LOOL & " tout particulièrement à " & LOOOOOL & " , une personne si " & LOOOL, vbInformation, LOOOL
Next LOOOL
Next LOOL
End Sub

LOL !! bonne soirée à toi et merci pour le devoir des 100 Lignes, parfait !!!

@+Thierry
 

Discussions similaires

Statistiques des forums

Discussions
312 392
Messages
2 088 004
Membres
103 693
dernier inscrit
vincs