Bonjour,

Je vous propose un nouvel élément à utiliser : Convertisseur codage couleur HTML/Hexadécimale et inversement

Un petit outil et quelques formules pour convertir les couleurs d'une page HTML en couleurs utilisables pour les contrôles/composants que l'on utilise sous VB6, et pourquoi pas inversement.



'***************** Différence de codage couleurs HTML et Hexadécimale *************************

Postula, la lecture des codages est faite de gauche à droite

Sous VB6, tous les composants/contrôles permettant un choix de couleurs peut être paramétré en hexadécimale.
Lorsque l'on veut utiliser une couleur provenant d'une page HTML, il faut savoir que les composantes
Rouge et Bleu sont inversées vis à vis du codage Hexadécimale utilisé sous VB6
Une couleur Hexadécimale sous VB6 est exprimée par 4x2 caractères
Chaque groupe de 2 caractères vont de 00 à FF (0 à 255 en décimale), sauf le 1° groupe.
le groupe 1 est utilisé pour différencier les couleurs "système" ou "palette"

Pour le cas couleurs "système", le groupe 2 et 3 sera toujours égal à 00 et le groupe 4 peut prendre 24 valeurs de 00 à 18
Exemple pour une couleur "Sommet du bouton": 80 00 00 0F (&H8000000F), "En surbrillance": 80 00 00 0D (&H8000000D)
A savoir qu'un même code couleur "système" ne garantie pas une même couleur d'un ordinateur à un autre.

Pour le cas couleurs "palette",
le groupe 1 vaut toujours 00
le groupe 2 représente la composante Bleu
le groupe 3 représente la composante Verte
le groupe 4 représente la composante Rouge
Exemple pour une couleur Rose soutenue: 00 8D 70 DF (&H008D70DF)
--------------------------------------------------------------------
Une couleur HTLM est exprimée par 3x2 caractères
Chaque groupe de 2 caractères vont de 00 à FF (0 à 255 en décimale)
le groupe 1 représente la composante Rouge
le groupe 2 représente la composante Verte
le groupe 3 représente la composante Bleu
Exemple pour une couleur Rose soutenue: DF 70 8D (#DF708D)

Les variables

vHTML: HTML Hexadécimale codée sur 3x2 caractères (#000000 à #FFFFFF) String
vHexa: Hexadécimale codée sur 4x2 caractères (&h00000000 à &h00FFFFFF) String
vDec: décimale (0 à 16777215) Long
HR: composante rouge Hexadécimale codée sur 1x2 caractères (00 à FF) String
HG: composante verte Hexadécimale codée sur 1x2 caractères (00 à FF) String
HB: composante bleu Hexadécimale codée sur 1x2 caractères (00 à FF) String
R: composante rouge décimale (0 à 255) Integer
G: composante verte décimale (0 à 255) Integer
B: composante Bleu décimale (0 à 255) Integer

les fonctions assossiées dans les formules:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
	Private Function Hex2(Valeur As String) As String
	'la fonction renvoie la valeur formatée sur 2 caractères
	If Len(Valeur) = 1 Then Hex2 = "0" & Valeur Else Hex2 = Valeur
	End Function
	Private Function Rouge(ByVal Couleur As Long) As Long
	'La fonction renvoie la valeur de la composante rouge
	Rouge = Couleur - ((Bleu(Couleur) * 65536) + (Vert(Couleur) * 256))
	End Function
	Private Function Vert(ByVal Couleur As Long) As Long
	'La fonction renvoie la valeur de la composante verte
	Vert = Int((Couleur - (65536 * Bleu(Couleur))) / 256)
	End Function
	Private Function Bleu(ByVal Couleur As Long) As Long
	'La fonction renvoie la valeur de la composante bleu
	Bleu = Int(Couleur / 65536)
	End Function
Les formules utilisables sous VB6

vHTML connue
HR = Left(vHTML, 2)
HG = Mid(vHTML, 3, 2)
HB = Right(vHTML, 2)
R = Cint("&h" & HR)
G = Cint("&h" & HG)
B = Cint("&h" & HB)
vDec = RGB(R, G, B)
vHexa = Right(vHTML, 2) & Mid(vHTML, 3, 2) & Left(vHTML, 2)

vHexa connue
HR = Right(vHexa, 2)
HG = Mid(vHexa, 3, 2)
HB = Left(vHexa, 2)
vHTML = HR & HG & HB
R = Cint("&h" & HR)
G = Cint("&h" & HG)
B = Cint("&h" & HB)
vDec = RGB(R, G, B)

vDec connue
R = Rouge(vDec)
G = Vert(vDec)
B = Bleu(vDec)
HR = Hex2(Hex(R))
HG = Hex2(Hex(G))
HB = Hex2(Hex(B))
vHexa = HB & HG & HR
vHTML = HR & HG & HB

HR,HG et HB connue
R = Cint("&h" & HR)
G = Cint("&h" & HG)
B = Cint("&h" & HB)
vDec = RGB(R, G, B)
vHexa = HB & HG & HR
vHTML = HR & HG & HB

R,G et B connue
vDec = RGB(R, G, B)
HR = Hex2(Hex(R))
HG = Hex2(Hex(G))
HB = Hex2(Hex(B))
vHexa = HB & HG & HR
vHTML = HR & HG & HB

Projet de demonstration

ConverCouleurs.zip (5Ko)
Qu'en pensez-vous ?