Trouver le nom d'une couleur

Mode d'emploi
Le code
Explications

Mode d'emploi - Exemple

En Visual Basic, une couleur est codée par un nombre entier compris entre 0 et 16777215. Pour y voir plus clair, il faut exprimer cet entier en Hexadécimal.

L'hexadécimal corresponds à la base 16. Les "chiffres" de l'hexa sont : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F. Ainsi, le nombre hexadécimal "6B" corresponds au nombre décimal "107" (6*16 + 11).
En VB il est tout à fait possible de manipuler les nombres en hexa (c'est d'ailleurs recommandé pour les couleurs); il suffit juste de taper "&h" avant le nombre hexa. Par exemple, les deux instructions suivantes affectent la même valeur à la variable "x" :
x=107
x=&h6B
Au final, l'hexa est juste une convention d'AFFICHAGE, un nombre tapé sous la forme décimale sera stocké et traité par l'ordinateur DE LA MEME MANIERE qu'un nombre tapé sous la forme hexadécimale.

Revenons à nos couleurs ! Donc une couleur est un nombre qui va de 0 à 16777215 c'est à dire de &h000000 à &hFFFFFF. Et c'est là que l'usage de l'hexa est très interessant. Les deux premiers chiffres hexa correspondent à la quantité de bleu, les deux du milieu à la quantité de vert, et les deux derniers à la quantité de rouge.
On a donc couleur = &hBBVVRR, avec BB allant de &h00 à &hFF, avec VV allant de &h00 à &hFF, et avec RR allant de &h00 à &hFF
Par exemple, la couleur &h38FFC0 contient &h38 de bleu, &hFF de vert, &hC0 de rouge.

Alors que fait ma procédure ? Vous lui passez comme paramétre un nombre couleur (genre &h35AF0C), et elle vous retourne une chaîne contenant le nom de cette couleur !

Exemple d'utilisation :
Dim Couleur as Long
Dim a$
Couleur = &H38FFC0
a$ = NomCouleur$(Couleur)
MsgBox a$
On obtient le résultat suivant :
vert clair

Le code

Comme vous le remarquez, il n'y a pas une mais 4 fonctions. En fait, la fonction NomCouleur$ a besoin de 3 fonction annexes. Chacune de ces fonctions annexes a pour rôle d'extraire d'un nombre de couleur la quantité de bleu (ExtractB) de vert (ExtractG) ou de rouge (ExtractR).

Explications

Rien de compliqué ici !
On extrait d'abord la quantité de chaque couleur élémentaire (Bleu, Vert, Rouge), puis on effectue une serie de tests de comparaisons pour trouver un nom de couleur adéquat.