Cours VBA : les couleurs

Nous allons commencer par attribuer une couleur au texte en A1.

Après avoir ajouté Font., nous obtenons :

color - couleurs

Nous avons 2 possibilités pour définir la couleur : ColorIndex et ses 56 couleurs ou Color qui nous permettra d'utiliser n'importe quelle couleur.

ColorIndex

Voici les 56 couleurs disponibles avec ColorIndex :

colorindex - couleurs

Pour donner à notre texte l'une des 56 couleurs, nous écrirons :

Sub couleurs()
   'Couleur du texte en A1 : vert (Couleur n°10)
   Range("A1").Font.ColorIndex = 10
End Sub

Ce qui nous donne :

test2 - couleurs

Pour les versions d'Excel inférieures à 2007 : l'utilisation de ColorIndex est préférable à Color.

Color

Voici un exemple similaire avec Color :

Sub couleurs()
   'Couleur du texte en A1 : RGB(50, 200, 100)
   Range("A1").Font.Color = RGB(50, 200, 100)
End Sub

La couleur ici est : RGB(50, 200, 100)

RGB en français signifie Rouge-Vert-Bleu (RVB), les valeurs vont de 0 à 255 pour chaque couleur.

Quelques exemples de couleurs pour mieux comprendre :

  • RGB(0, 0, 0) : noir
  • RGB(255, 255, 255) : blanc
  • RGB(255, 0, 0) : rouge
  • RGB(0, 255, 0) : vert
  • RGB(0, 0, 255) : bleu

Heureusement pour nous, il existe différentes solutions qui nous permettent de trouver facilement les valeurs RGB de la couleur qui nous intéresse.

Vous trouverez par exemple une liste de valeurs RGB sur la page suivante : liste de valeurs RGB

Pour donner une couleur violette à notre texte, nous pouvons donc rechercher les valeurs RGB de cette couleur sur la liste et écrire :

Sub couleurs()
   'Couleur du texte en A1 : RGB(192, 32, 255)
   Range("A1").Font.Color = RGB(192, 32, 255)
End Sub

Ce qui nous donne :

test - couleurs

Pour les versions d'Excel inférieures à 2007 : le nombre de couleurs est limité (la couleur disponible la plus proche de la valeur RGB sera utilisée).

Créer une bordure colorée

Nous allons créer une macro qui va ajouter une bordure à la cellule active avec ActiveCell.

La bordure sera rouge et épaisse :

Sub couleurs()
   'Epaisseur de la bordure
   ActiveCell.Borders.Weight = 4
   'Couleur de la bordure : rouge
   ActiveCell.Borders.Color = RGB(255, 0, 0)
End Sub

Aperçu :

bordure - couleurs

Pour appliquer cet effet à plusieurs cellules à la fois, nous pouvons utiliser Selection :

Sub couleurs()
   'Epaisseur de la bordure
   Selection.Borders.Weight = 4
   'Couleur de la bordure : rouge
   Selection.Borders.Color = RGB(255, 0, 0)
End Sub

Colorer le fond des cellules sélectionnées

Sub couleurs()
   'Colorer le fond des cellules sélectionnées
   Selection.Interior.Color = RGB(174, 240, 194)
End Sub

Aperçu :

fond - couleurs

Colorer l'onglet d'une feuille

Sub couleurs()
   'Colorer l'onglet de la feuille "Feuil1"
   Sheets("Feuil1").Tab.Color = RGB(255, 0, 0)
End Sub

Aperçu :

onglet - couleurs
Télécharger ce cours au format PDF