VBA : Ecrire les couleurs




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.


top