Conversion Hexadecimal ===> RVB

alexx860 Messages postés 22 Date d'inscription vendredi 4 avril 2003 Statut Membre Dernière intervention 2 janvier 2004 - 31 oct. 2003 à 19:08
cs_rene38 Messages postés 1858 Date d'inscription samedi 29 juin 2002 Statut Membre Dernière intervention 17 octobre 2013 - 3 nov. 2003 à 01:01
Bonjour,
je cherche a faire une conversion d'une couleur hexadecimale en couleur R V B.
ex : FF0000 me donnera 255 0 0

Merci d'avance :)
alexx860

5 réponses

K@zuya Messages postés 306 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 15 février 2016
31 oct. 2003 à 23:17
Peut-être que je me complique la vie, mai voila une solution:
il faut mettre ça dans un module

Public Type RGB_Color
    Red As Integer
    Green As Integer
    Blue As Integer
End Type

Public Function HexaToRGB(HexaValue As String) As RGB_Color
Dim Temp As RGB_Color
If Len(HexaValue) <> 6 Then Exit Function
Temp.Red = HexaToDecimal(Left$(HexaValue, 2))
Temp.Green = HexaToDecimal(Mid$(HexaValue, 3, 2))
Temp.Blue = HexaToDecimal(Right$(HexaValue, 2))
HexaToRGB = Temp
End Function

Private Function HexaToDecimal(HexaValue As String) As Integer
Dim TempVal As String
For i = 0 To 255
    If i < 16 Then
        TempVal = "0" & CStr(Hex(i))
    Else
        TempVal = CStr(Hex(i))
    End If
    If UCase(HexaValue) = TempVal Then
        HexaToDecimal = i
        Exit Function
    End If
Next
End Function


Ensuite, pour l'utiliser,voila un exemple

Dim Val As RGB_Color
Private Sub Command1_Click()
Val = HexaToRGB(Text1.Text)
Me.BackColor = RGB(Val.Red, Val.Green, Val.Blue)
End Sub

K@zuya 8-)
0
alexx860 Messages postés 22 Date d'inscription vendredi 4 avril 2003 Statut Membre Dernière intervention 2 janvier 2004
1 nov. 2003 à 12:23
Merci, j'ai essayer mais j'ai l'erreur :
Variable ou procedure attendue, pas un module
je suis un tout debutant en vb je ne connais pas encore tout

Merci d'avance :)
alexx860
0
K@zuya Messages postés 306 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 15 février 2016
1 nov. 2003 à 12:36
et bien, cette erreur arive lorsqu'on nomme un module comme une fonction, verifie que tu n'a pas nommé ton module avec le nom suivant: HexaToRGB

K@zuya 8-)
0
alexx860 Messages postés 22 Date d'inscription vendredi 4 avril 2003 Statut Membre Dernière intervention 2 janvier 2004
2 nov. 2003 à 00:07
faut toujours que je fasse tout de travers :big)
je l'avais nommé comme ca...
Merci, ca m'evitera de refaire l'erreur plus tard

@+
alexx860
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_rene38 Messages postés 1858 Date d'inscription samedi 29 juin 2002 Statut Membre Dernière intervention 17 octobre 2013 11
3 nov. 2003 à 01:01
Bonjour

Ne pourrait-on pas faire l'économie d'une fonction en remplaçant
Temp.Red = HexaToDecimal(Left$(HexaValue, 2))
par
Temp.Red = CInt ("&H" & & (Left$(HexaValue, 2))) ?

et de même pour le vert et le bleu.
0
Rejoignez-nous