Comment attribuer des couleurs aux différents objets ?
Police, trame de fond des cellules, éléments des graphiques… Il existe plusieurs
méthodes d’attribution des couleurs en VBA. Aujourd’hui je vous présente 2
possibilités très simple :
- La première repose sur l’application d’un simple numéro d’index désignant une couleur : 3 pour le rouge, 4 pour le vert,… Dans cette méthode Excel attribue à une propriété ColorIndex( ) 57 couleurs, indexées de 0 à 56. L’index 0 correspond en fait à l’absence de couleurs pour une trame ou à la couleur noire par défaut pour une police.
Cette boucle permet de créer la liste des ColorIndex, couleur et index.
Sub Liste_Index_Couleurs()
Dim nbCouleur As
Integer
Range("a1").Select
For nbCouleur = 0
To 56 Step 1
Cells(nbCouleur + 1, 1).Select
Selection.Font.ColorIndex = nbCouleur
Cells(nbCouleur + 1, 2).Select
Selection.Value = nbCouleur
With Selection
.HorizontalAlignment = xlCenter
.Font.Bold
= True
End With
Next nbCouleur
End Sub
- La seconde méthode consiste à attribuer la couleur grâce à une fonction RGB( ) qui envoie la quantité souhaité de rouge, de vert et de bleu à une propriété Color( ) conformément au célèbre modèle RVB en utilisant une notation décimale sur une échelle allant de 0 à 255.
Cette boucle permet d’affecter 4 096 couleurs (parmi 2563
= 16 777 216 possibilités) avec leurs valeurs en décimales à la
propriété Color( )
Sub RGB_Color()
Dim rouge As Integer
Dim vert As Integer
Dim Bleu As Integer
Dim lig As Long
lig = 1
For rouge = 0 To 255 Step 16
‘256 / 16 = 16 – 16 * 16 * 16 =4 096
For vert = 0 To
255 Step 16
For Bleu = 0
To 255 Step 16
Cells(lig,
1).Select
With
Selection
.Interior.Color = RGB(rouge, vert, Bleu)
End With
Cells(lig,
2).Value = rouge & "-" & vert & "-" & Bleu
lig = lig
+ 1
Next Bleu
Next vert
Next rouge
End Sub
Sachez qu’il existe d’autres méthodes pour écrire des
couleurs, comme la possibilité d’exprimer les valeurs du mode RVB en hexadécimale ou d’utiliser un « entier long » pour coder les couleurs…alors peut-être un jour,
un autre article sur ce sujet.
0 commentaires:
Enregistrer un commentaire