Ok, allons y simplement
Le code suivant convertie une valeur décimale à une valeur Hexadecimal , alors prenez les 3 éléments RGB du nombre Hex et reconvertisez-les en leurs 8-bits ENTIER. Ce n'ai pas difficile, 5 lignes facile :)
Dim HexadecimalValue As String 'Ça va contenir la valeur Hexadecimal comme un CARACTERE(string) ou une CHAINE DE CARACTERE(string)
Public Sub Decimal_to_RGB (DecimalValue As Long)
'Les lignes suivantes font sortir la valeur décimal d'une valeur Hexadecimal
Dim RedValue As Integer 'Ça va contenir la valeur entière rouge (de 0 à 255)
Dim GreenValue As Integer 'Ça va contenir la valeur entière verte (de 0 à 255)
Dim BlueValue As Integer 'Ça va contenir la valeur entière bleue (de 0 à 255)'Cette ligne va convertir une valeur décimale RÉEL(long) en Hexadecimal
End Sub
HexadecimalValue = Hex(Val(DecimalValue))
If Len(Hexadecimal.Text) < 6 Then
'Give is 6 digits for easy RGB conversion.
End If
HexadecimalValue = String(6 - Len(HexadecimalValue), "0") + HexadecimalValue
'Le nombre hex est séparé de la façon suivante: &H RR GG BB
'Les 2 premiers caractères(RR) correspond à la valeur rouge, si vous lisez sa comme une
'CHAINE DE CARACTERE(string) et que vous ajoutez "&H" au début, lorsque CLng va le convertir à partir
'd'une CHAINE DE CARACTERES(string) en nombre, ça va le voir comme un nombre hex, et non pas comme une valeur,
'décimal et c'est ainsi que la valeur rouge est trouvé.
RedValue = CLng("&H" + Mid(HexadecimalValue, 1, 2))
'Les 2 prochains caractères(GG) correspondes à la valeur verte, les caractères 3 et 4.
GreenValue = CLng("&H" + Mid(HexadecimalValue, 3, 2))
'Les 2 derniers(BB) correspondes à la valeur bleu, les caractères 5 et 6.
BlueValue = CLng("&H" + Mid(HexadecimalValue, 5, 2))
Tutorial écrit par Steven Blom
Remerciement spécials à:
Chris, KoPP3x, Martin sur le Message Board de Lucky's VB Gaming
(Je me rappel de votre discution, mais je me suis pas référé à elle pour écrire ça)