VBA dans WORD - Comment les couleurs sont-elles codées ?

Bonjour à tous,

Avec la ligne :

Selection.Find.Replacement.Font.Color = 5296274

J'obtient la couleur RVB suivante : R146, V208, B80

Mais comment calculer la valeur en sens inverse lorsque je décide d'utiliser une autre couleur dont j'ai le RVB ?

En quel système est codé le 5296274 ?

Merci par avance !

Réponse de l'IA :

La valeur 5296274 correspond au code hexadécimal de la couleur RVB 146,208,80

146,208,80, soit #92D050. En notation décimale, ce nombre représente donc la couleur dans un système de codage hexadécimal sur 24 bits, utilisé notamment en HTML/CSS et dans de nombreux logiciels graphiques.

Pour vérifier :

  • R = 146 = 92 en hexadécimal
  • V = 208 = D0 en hexadécimal
  • B = 80 = 50 en hexadécimal

En les concaténant à l'envers donc de bas en haut, on obtient 50D092, donc 5296274 en décimal.

Bonjour,

Juste pour info (la réponse de l'IA est correcte en soi), mais d'un point de vue pratique en VBA vous avez une fonction pour convertir directement de RGB -> Long : RGB function (Visual Basic for Applications) | Microsoft Learn

Ou bien vous pouvez faire le calcul à la main c'est facile, soit R, V, B vos composantes Rouge, Vert, Bleu, vous pouvez calculer le numéro correspondant ainsi :

valeurLong = 256^2 * B + 256 * V + R
' ou bien tout simplement
valeurLong = VBA.RGB(R, V, B)

Ce qui donne bien dans votre cas :

80*256^2+208*256+145 = 5296273

Rechercher des sujets similaires à "vba word comment couleurs codees"