Code de couleur

JulienB

XLDnaute Junior
Bonjour le forum,

Comment via VBA changer un numéro défini en couleur ?

Je veux dire par là que en B5 j'ai le chiffre "3" qui correspond en couleur de remplissage à "vert", donc la cellule B5 doit etre verte idem pour les chiffres de 1 à 5.

Il faut en plus pour compliquer la donne, l'integrer dans le code ci dessus.
Code:
Sub MaJ()
nn = Sheets("Feuil1").Range("A65536").End(xlUp).Row
For n = 2 To nn
  nom = Sheets("Feuil1").Cells(n, 1)
  groupe = Sheets("Feuil1").Cells(n, 2)
  couleur = Sheets("Feuil1").Cells(n, 3)
  Select Case groupe
    Case Is = "Groupe1"
      c = "B65536"
      cc = 2
      ccc = 3
    Case Is = "Corporate Banking & Structured Finance IT (CBF)"
    c = "K65536"
      cc = 11
      ccc = 12
    Case Is = "Groupe3"
    c = "H65536"
      cc = 8
      ccc = 9
    Case Is = "Equity Derivatives IT (EDI)"
    c = "E65536"
      cc = 5
      ccc = 6
  End Select
  d = Sheets("Feuil2").Range(c).End(xlUp).Row + 1
  Sheets("Feuil2").Cells(d, cc).Value = nom
  Sheets("Feuil2").Cells(d, ccc).Value = couleur
 Next
 
End Sub

".Value = couleur" affiche le chiffre 3...

Merci pour votre aide !!
 

Papou-net

XLDnaute Barbatruc
Re : Code de couleur

Bonjour JulienB,

Si j'ai bien compris, cette modification devrait te convenir :

Code:
Sub MaJ()
nn = Sheets("Feuil1").Range("A65536").End(xlUp).Row
For n = 2 To nn
  nom = Sheets("Feuil1").Cells(n, 1)
  groupe = Sheets("Feuil1").Cells(n, 2)
  couleur = Sheets("Feuil1").Cells(n, 3)
  Select Case groupe
    Case Is = "Groupe1"
      c = "B65536"
      cc = 2
      ccc = 3
    Case Is = "Corporate Banking & Structured Finance IT (CBF)"
    c = "K65536"
      cc = 11
      ccc = 12
    Case Is = "Groupe3"
    c = "H65536"
      cc = 8
      ccc = 9
    Case Is = "Equity Derivatives IT (EDI)"
    c = "E65536"
      cc = 5
      ccc = 6
  End Select
  d = Sheets("Feuil2").Range(c).End(xlUp).Row + 1
  Sheets("Feuil2").Cells(d, cc).Value = nom
  [COLOR="Red"][B]Sheets("Feuil2").Cells(d, ccc).Interior.ColorIndex= couleur[/B][/COLOR]
 Next
 
End Sub

Cordialement.
 

JulienB

XLDnaute Junior
Re : Code de couleur

Merci Papou- net

Ok c'est cela sauf que :

le code de couleur est définie cad :

1 = vert foncé
2 = vert clair
3 = bleu
4 = orange
5 = rouge

En plus il y a un code erreur 1004 Impossible de définir la propriété ColorIndex de la classe Interior.

Voila !
 

Etienne2323

XLDnaute Impliqué
Re : Code de couleur

Bonjour Julien,
je lance une idée comme ça et j'aimerais que quelqu'un me dise si je fais erreur. Selon moi, si tu souhaites remplacer les couleur par défaut d'Excel, il faut que tu lui en donne l'ordre. Voici ce que j'avais en tête. À tester par contre !

Je remplacerais ceci :
Code:
Sheets("Feuil2").Cells(d, ccc).Interior.ColorIndex= couleur

par quelque chose du genre :

Code:
'Si Cells(n,3) = 1(normalement noir), alors la couleur d'intérieur de la cells(d,ccc) sera 10 (vert foncé)
If Sheets("Feuil1").Cells(n, 3).Value = 1 Then Sheets("Feuil2").Cells(d, ccc).Interior.ColorIndex = 10

'Si Cells(n,3) = 2(normalement blanc), alors la couleur d'intérieur de la cells(d,ccc) sera 4 (vert clair)
If Sheets("Feuil1").Cells(n, 3).Value = 2 Then Sheets("Feuil2").Cells(d, ccc).Interior.ColorIndex = 4

'Si Cells(n,3) = 3(normalement rouge), alors la couleur d'intérieur de la cells(d,ccc) sera 5 (bleu)
If Sheets("Feuil1").Cells(n, 3).Value = 3 Then Sheets("Feuil2").Cells(d, ccc).Interior.ColorIndex = 5

'Si Cells(n,3) = 4(normalement vert clair), alors la couleur d'intérieur de la cells(d,ccc) sera 46 (orange)
If Sheets("Feuil1").Cells(n, 3).Value = 4 Then Sheets("Feuil2").Cells(d, ccc).Interior.ColorIndex = 46

'Si Cells(n,3) = 5(normalement bleu), alors la couleur d'intérieur de la cells(d,ccc) sera 3 (rouge)
If Sheets("Feuil1").Cells(n, 3).Value = 5 Then Sheets("Feuil2").Cells(d, ccc).Interior.ColorIndex = 3

Cordialement,

Étienne
 

Papou-net

XLDnaute Barbatruc
Re : Code de couleur

Bonsoir JulienB, le Forum,

Julien, si tu veux obtenir les couleurs utilisées par Excel, tu peux créer un bouton de commande sur une feuille vierge et lui appliquer ce code (sur ma version, le nombre de louleurs est limité à 57) :

Code:
Private Sub CommandButton1_Click()
For n = 0 To 56
  Cells(n + 1, 1).Interior.ColorIndex = n
  Cells(n + 1, 2) = " Couleur N° " & n
Next

End Sub

Espérant t'avoir aidé.

Cordialement.
 

Statistiques des forums

Discussions
312 104
Messages
2 085 349
Membres
102 869
dernier inscrit
radyreth