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 les valeurs RGB de la couleur qui nous intéresse en toute simplicité, en voici une (cliquez sur l'image) :

bouton

Choisissez le couleur qui vous intéresse grâce à cet utilitaire et copiez simplement les 3 valeurs dans RGB(valeur_rouge, valeur_vert, valeur_bleu).

Pour donner à notre texte la couleur violette ci-dessus, nous écrirons donc :

Sub couleurs()
   'Couleur du texte en A1 : RGB(192, 24, 255)
   Range("A1").Font.Color = RGB(192, 24, 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
VARIABLESPROPRIETES