|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
HEXA / DECIMAL / VB HEXA / RVB - TOUTES LES CONVERSIONS DE TYPE DE COULEURS DANS UN MODULE
Information sur la source
Description
Ca faisait 2 jours que je cherchait un moyen simple de convertir les couleurs de VB en hexadecimal (HTML) , ou le contraire ect... , j'ai trouvé des bouts de réponses dans les sources et le forum , mais rien de bien complet... Alors je me suis motivé ! Avec ce module , on peut convertir : Decimal vers Hexadecimal,Hexadecimal VB,RVB RVB vers Decimale , Hexadecimal , Hexadecimal VB Hexadecimal vers Decimal,Hexadecimal VB, RVB Hexadecimal VB vers Decimal, RVB, Hexadecimal. Et ca tres simplement ! (aucun code necessaire)
Source
- Option Explicit
-
- ' ##################
- ' # #
- ' # Danyz #
- ' # #
- ' # Octobre 2004 #
- ' # #
- ' ##################
-
- Public Rouge As Byte, Vert As Byte, Bleu As Byte
-
- Public Type CouleursRVB
- Rouge As Byte
- Vert As Byte
- Bleu As Byte
- End Type
- '
-
- Public Function DecimalToRvb(ValDecimal As Long) As CouleursRVB
-
- ' Convertit une couleur Decimale (VB) en couleur RVB
- ' Exemple : 14698369 = Rouge(129), Vert(71), Bleu(224)
-
- DecimalToRvb.Rouge = ValDecimal Mod 256
- DecimalToRvb.Vert = (ValDecimal \ 256) Mod 256
- DecimalToRvb.Bleu = (ValDecimal \ 256 ^ 2) Mod 256
-
- End Function
- Public Function DecimalToHexa(ValDecimal As Long) As String
-
- ' Convertit une couleur Decimale (VB) en couleur Hexadecimale(HTML)
- ' Exemple : 14698369 = #8147E0
-
- Rouge = ValDecimal Mod 256
- Vert = (ValDecimal \ 256) Mod 256
- Bleu = (ValDecimal \ 256 ^ 2) Mod 256
-
- DecimalToHexa = RvbToHexa(Rouge, Vert, Bleu)
-
- End Function
- Public Function DecimalToVBHexa(ValDecimal As Long) As String
-
- ' Convertit une couleur Decimale (VB) en couleur Hexadecimale VB
- ' Exemple : 14698369 = &HE04781
-
- Rouge = ValDecimal Mod 256
- Vert = (ValDecimal \ 256) Mod 256
- Bleu = (ValDecimal \ 256 ^ 2) Mod 256
-
- DecimalToVBHexa = RvbToVBHexa(Rouge, Vert, Bleu)
-
- End Function
-
- Public Function RvbToDecimal(Rouge As Byte, Vert As Byte, Bleu As Byte) As Long
-
- ' Convertir une couleur RVB vers une couleur Decimale
- ' Exemple : Rouge(129), Vert(71), Bleu(224) = 14698369
-
- RvbToDecimal = Rouge + (Vert * 256) + (Bleu * 65536)
-
- End Function
-
- Public Function RvbToHexa(Rouge As Byte, Vert As Byte, Bleu As Byte) As String
-
- ' Convertir une couleur RVB vers une couleur Hexadecimale (HTML)
- ' Exemple : Rouge(129), Vert(71), Bleu(224) = #8147E0
-
- RvbToHexa = "#" ' ou "" si on veut un affichage du genre 5D478B au lieu de #5D478B
-
- RvbToHexa = IIf(Len(Hex$(Rouge)) = 1, RvbToHexa & "0" & Hex$(Rouge), RvbToHexa & Hex$(Rouge))
- RvbToHexa = IIf(Len(Hex$(Vert)) = 1, RvbToHexa & "0" & Hex$(Vert), RvbToHexa & Hex$(Vert))
- RvbToHexa = IIf(Len(Hex$(Bleu)) = 1, RvbToHexa & "0" & Hex$(Bleu), RvbToHexa & Hex$(Bleu))
-
- End Function
- Public Function RvbToVBHexa(Rouge As Byte, Vert As Byte, Bleu As Byte) As String
-
- ' Convertir une couleur RVB vers une couleur Hexadecimale VB
- ' Exemple : Rouge(129), Vert(71), Bleu(224) = &HE04781
-
- RvbToVBHexa = "&H"
-
- RvbToVBHexa = IIf(Len(Hex$(Bleu)) = 1, RvbToVBHexa & "0" & Hex$(Bleu), RvbToVBHexa & Hex$(Bleu))
- RvbToVBHexa = IIf(Len(Hex$(Vert)) = 1, RvbToVBHexa & "0" & Hex$(Vert), RvbToVBHexa & Hex$(Vert))
- RvbToVBHexa = IIf(Len(Hex$(Rouge)) = 1, RvbToVBHexa & "0" & Hex$(Rouge), RvbToVBHexa & Hex$(Rouge))
-
- End Function
- Public Function HexaToDecimal(ValeurHexa As String) As Long
-
- ' Convertir une couleur Hexadecimale VB en couleur Decimale VB
- ' Exemple : #8147E0 = 14698369
-
- Dim V1 As String, V2 As String, V3 As String
-
- If Left(ValeurHexa, 1) = "#" Then ValeurHexa = Right(ValeurHexa, Len(ValeurHexa) - 1)
- ' Verifie si le premier caractère est
- ' un # et le supprime si oui
-
- V1 = "&H" & Left(ValeurHexa, 2) & "&"
- V2 = "&H" & Mid(ValeurHexa, 3, 2) & "&"
- V3 = "&H" & Right(ValeurHexa, 2) & "&"
-
- HexaToDecimal = Val(V1) + (Val(V2) * 256) + (Val(V3) * 65536)
-
- End Function
- Public Function HexaToRVB(ValeurHexa As String) As CouleursRVB
-
- ' Convertir une couleur Hexadecimale VB en couleur RVB
- ' Exemple : #8147E0 = Rouge(129), Vert(71), Bleu(224)
-
- If Left(ValeurHexa, 1) = "#" Then ValeurHexa = Right(ValeurHexa, Len(ValeurHexa) - 1)
- ' Verifie si le premier caractère est
- ' un # et le supprime si oui
-
- HexaToRVB.Rouge = Val("&H" & Left(ValeurHexa, 2) & "&")
- HexaToRVB.Vert = Val("&H" & Mid(ValeurHexa, 3, 2) & "&")
- HexaToRVB.Bleu = Val("&H" & Right(ValeurHexa, 2) & "&")
-
- End Function
-
- Public Function HexaToVBHexa(ValeurHexa As String) As String
-
- ' Convertir une couleur Hexadecimale (HTML) vers une couleur Hexadecimale VB
- ' Exemple : #915BCC = &HCC5B91
-
- If Left(ValeurHexa, 1) = "#" Then ValeurHexa = Right(ValeurHexa, 6)
- ' Verifie si le premier caractère est
- ' un # et le supprime si oui
-
- HexaToVBHexa = "&H" & Right(ValeurHexa, 2) & Mid(ValeurHexa, 3, 2) & Left(ValeurHexa, 2)
-
- End Function
- Public Function VBHexaToDecimal(ValeurVBHexa As String) As Long
-
- ' Convertir une couleur Hexadecimale VB vers une couleur Decimale VB
- ' Exemple : &HE04781 = 14698369
-
- Dim V1 As String, V2 As String, V3 As String
-
- If Left(ValeurVBHexa, 4) = "&H00" Then ValeurVBHexa = "&H" & Right(ValeurVBHexa, Len(ValeurVBHexa) - 4)
- If Right(ValeurVBHexa, 1) = "&" Then ValeurVBHexa = Left(ValeurVBHexa, Len(ValeurVBHexa) - 1)
- ' Verifie le format :
- ' si c'est &H00E04781& on convertit en &HE04781
-
- V1 = "&H" & Right(ValeurVBHexa, 2) & "&"
- V2 = "&H" & Mid(ValeurVBHexa, 5, 2) & "&"
- V3 = "&H" & Mid(ValeurVBHexa, 3, 2) & "&"
-
- VBHexaToDecimal = Val(V1) + (Val(V2) * 256) + (Val(V3) * 65536)
-
- End Function
- Public Function VBHexaToRVB(ValeurVBHexa As String) As CouleursRVB
-
- ' Convertir une couleur Hexadecimale VB vers une couleur RVB
- ' Exemple : &HE04781 = Rouge(129), Vert(71), Bleu(224)
-
- If Left(ValeurVBHexa, 4) = "&H00" Then ValeurVBHexa = "&H" & Right(ValeurVBHexa, Len(ValeurVBHexa) - 4)
- If Right(ValeurVBHexa, 1) = "&" Then ValeurVBHexa = Left(ValeurVBHexa, Len(ValeurVBHexa) - 1)
- ' Verifie le format :
- ' si c'est &H00E04781& on convertit en &HE04781
-
- VBHexaToRVB.Rouge = Val("&H" & Right(ValeurVBHexa, 2) & "&")
- VBHexaToRVB.Vert = Val("&H" & Mid(ValeurVBHexa, 5, 2) & "&")
- VBHexaToRVB.Bleu = Val("&H" & Mid(ValeurVBHexa, 3, 2) & "&")
-
- End Function
- Public Function VBHexaToHexa(ValeurVBHexa As String) As String
-
- ' Convertir une couleur Hexadecimale VB vers une couleur Hexadecimale (HTML)
- ' Exemple : &HE04781 = #8147E0
-
-
- If Left(ValeurVBHexa, 4) = "&H00" Then ValeurVBHexa = "&H" & Right(ValeurVBHexa, Len(ValeurVBHexa) - 4)
- If Right(ValeurVBHexa, 1) = "&" Then ValeurVBHexa = Left(ValeurVBHexa, Len(ValeurVBHexa) - 1)
- ' Verifie le format :
- ' si c'est &H00E04781& on convertit en &HE04781
-
-
- VBHexaToHexa = "#" ' ou "" si on veut un affichage du genre 5D478B au lieu de #5D478B
-
- VBHexaToHexa = VBHexaToHexa & Right(ValeurVBHexa, 2)
- VBHexaToHexa = VBHexaToHexa & Mid(ValeurVBHexa, 5, 2)
- VBHexaToHexa = VBHexaToHexa & Mid(ValeurVBHexa, 3, 2)
-
- End Function
Option Explicit
' ##################
' # #
' # Danyz #
' # #
' # Octobre 2004 #
' # #
' ##################
Public Rouge As Byte, Vert As Byte, Bleu As Byte
Public Type CouleursRVB
Rouge As Byte
Vert As Byte
Bleu As Byte
End Type
'
Public Function DecimalToRvb(ValDecimal As Long) As CouleursRVB
' Convertit une couleur Decimale (VB) en couleur RVB
' Exemple : 14698369 = Rouge(129), Vert(71), Bleu(224)
DecimalToRvb.Rouge = ValDecimal Mod 256
DecimalToRvb.Vert = (ValDecimal \ 256) Mod 256
DecimalToRvb.Bleu = (ValDecimal \ 256 ^ 2) Mod 256
End Function
Public Function DecimalToHexa(ValDecimal As Long) As String
' Convertit une couleur Decimale (VB) en couleur Hexadecimale(HTML)
' Exemple : 14698369 = #8147E0
Rouge = ValDecimal Mod 256
Vert = (ValDecimal \ 256) Mod 256
Bleu = (ValDecimal \ 256 ^ 2) Mod 256
DecimalToHexa = RvbToHexa(Rouge, Vert, Bleu)
End Function
Public Function DecimalToVBHexa(ValDecimal As Long) As String
' Convertit une couleur Decimale (VB) en couleur Hexadecimale VB
' Exemple : 14698369 = &HE04781
Rouge = ValDecimal Mod 256
Vert = (ValDecimal \ 256) Mod 256
Bleu = (ValDecimal \ 256 ^ 2) Mod 256
DecimalToVBHexa = RvbToVBHexa(Rouge, Vert, Bleu)
End Function
Public Function RvbToDecimal(Rouge As Byte, Vert As Byte, Bleu As Byte) As Long
' Convertir une couleur RVB vers une couleur Decimale
' Exemple : Rouge(129), Vert(71), Bleu(224) = 14698369
RvbToDecimal = Rouge + (Vert * 256) + (Bleu * 65536)
End Function
Public Function RvbToHexa(Rouge As Byte, Vert As Byte, Bleu As Byte) As String
' Convertir une couleur RVB vers une couleur Hexadecimale (HTML)
' Exemple : Rouge(129), Vert(71), Bleu(224) = #8147E0
RvbToHexa = "#" ' ou "" si on veut un affichage du genre 5D478B au lieu de #5D478B
RvbToHexa = IIf(Len(Hex$(Rouge)) = 1, RvbToHexa & "0" & Hex$(Rouge), RvbToHexa & Hex$(Rouge))
RvbToHexa = IIf(Len(Hex$(Vert)) = 1, RvbToHexa & "0" & Hex$(Vert), RvbToHexa & Hex$(Vert))
RvbToHexa = IIf(Len(Hex$(Bleu)) = 1, RvbToHexa & "0" & Hex$(Bleu), RvbToHexa & Hex$(Bleu))
End Function
Public Function RvbToVBHexa(Rouge As Byte, Vert As Byte, Bleu As Byte) As String
' Convertir une couleur RVB vers une couleur Hexadecimale VB
' Exemple : Rouge(129), Vert(71), Bleu(224) = &HE04781
RvbToVBHexa = "&H"
RvbToVBHexa = IIf(Len(Hex$(Bleu)) = 1, RvbToVBHexa & "0" & Hex$(Bleu), RvbToVBHexa & Hex$(Bleu))
RvbToVBHexa = IIf(Len(Hex$(Vert)) = 1, RvbToVBHexa & "0" & Hex$(Vert), RvbToVBHexa & Hex$(Vert))
RvbToVBHexa = IIf(Len(Hex$(Rouge)) = 1, RvbToVBHexa & "0" & Hex$(Rouge), RvbToVBHexa & Hex$(Rouge))
End Function
Public Function HexaToDecimal(ValeurHexa As String) As Long
' Convertir une couleur Hexadecimale VB en couleur Decimale VB
' Exemple : #8147E0 = 14698369
Dim V1 As String, V2 As String, V3 As String
If Left(ValeurHexa, 1) = "#" Then ValeurHexa = Right(ValeurHexa, Len(ValeurHexa) - 1)
' Verifie si le premier caractère est
' un # et le supprime si oui
V1 = "&H" & Left(ValeurHexa, 2) & "&"
V2 = "&H" & Mid(ValeurHexa, 3, 2) & "&"
V3 = "&H" & Right(ValeurHexa, 2) & "&"
HexaToDecimal = Val(V1) + (Val(V2) * 256) + (Val(V3) * 65536)
End Function
Public Function HexaToRVB(ValeurHexa As String) As CouleursRVB
' Convertir une couleur Hexadecimale VB en couleur RVB
' Exemple : #8147E0 = Rouge(129), Vert(71), Bleu(224)
If Left(ValeurHexa, 1) = "#" Then ValeurHexa = Right(ValeurHexa, Len(ValeurHexa) - 1)
' Verifie si le premier caractère est
' un # et le supprime si oui
HexaToRVB.Rouge = Val("&H" & Left(ValeurHexa, 2) & "&")
HexaToRVB.Vert = Val("&H" & Mid(ValeurHexa, 3, 2) & "&")
HexaToRVB.Bleu = Val("&H" & Right(ValeurHexa, 2) & "&")
End Function
Public Function HexaToVBHexa(ValeurHexa As String) As String
' Convertir une couleur Hexadecimale (HTML) vers une couleur Hexadecimale VB
' Exemple : #915BCC = &HCC5B91
If Left(ValeurHexa, 1) = "#" Then ValeurHexa = Right(ValeurHexa, 6)
' Verifie si le premier caractère est
' un # et le supprime si oui
HexaToVBHexa = "&H" & Right(ValeurHexa, 2) & Mid(ValeurHexa, 3, 2) & Left(ValeurHexa, 2)
End Function
Public Function VBHexaToDecimal(ValeurVBHexa As String) As Long
' Convertir une couleur Hexadecimale VB vers une couleur Decimale VB
' Exemple : &HE04781 = 14698369
Dim V1 As String, V2 As String, V3 As String
If Left(ValeurVBHexa, 4) = "&H00" Then ValeurVBHexa = "&H" & Right(ValeurVBHexa, Len(ValeurVBHexa) - 4)
If Right(ValeurVBHexa, 1) = "&" Then ValeurVBHexa = Left(ValeurVBHexa, Len(ValeurVBHexa) - 1)
' Verifie le format :
' si c'est &H00E04781& on convertit en &HE04781
V1 = "&H" & Right(ValeurVBHexa, 2) & "&"
V2 = "&H" & Mid(ValeurVBHexa, 5, 2) & "&"
V3 = "&H" & Mid(ValeurVBHexa, 3, 2) & "&"
VBHexaToDecimal = Val(V1) + (Val(V2) * 256) + (Val(V3) * 65536)
End Function
Public Function VBHexaToRVB(ValeurVBHexa As String) As CouleursRVB
' Convertir une couleur Hexadecimale VB vers une couleur RVB
' Exemple : &HE04781 = Rouge(129), Vert(71), Bleu(224)
If Left(ValeurVBHexa, 4) = "&H00" Then ValeurVBHexa = "&H" & Right(ValeurVBHexa, Len(ValeurVBHexa) - 4)
If Right(ValeurVBHexa, 1) = "&" Then ValeurVBHexa = Left(ValeurVBHexa, Len(ValeurVBHexa) - 1)
' Verifie le format :
' si c'est &H00E04781& on convertit en &HE04781
VBHexaToRVB.Rouge = Val("&H" & Right(ValeurVBHexa, 2) & "&")
VBHexaToRVB.Vert = Val("&H" & Mid(ValeurVBHexa, 5, 2) & "&")
VBHexaToRVB.Bleu = Val("&H" & Mid(ValeurVBHexa, 3, 2) & "&")
End Function
Public Function VBHexaToHexa(ValeurVBHexa As String) As String
' Convertir une couleur Hexadecimale VB vers une couleur Hexadecimale (HTML)
' Exemple : &HE04781 = #8147E0
If Left(ValeurVBHexa, 4) = "&H00" Then ValeurVBHexa = "&H" & Right(ValeurVBHexa, Len(ValeurVBHexa) - 4)
If Right(ValeurVBHexa, 1) = "&" Then ValeurVBHexa = Left(ValeurVBHexa, Len(ValeurVBHexa) - 1)
' Verifie le format :
' si c'est &H00E04781& on convertit en &HE04781
VBHexaToHexa = "#" ' ou "" si on veut un affichage du genre 5D478B au lieu de #5D478B
VBHexaToHexa = VBHexaToHexa & Right(ValeurVBHexa, 2)
VBHexaToHexa = VBHexaToHexa & Mid(ValeurVBHexa, 5, 2)
VBHexaToHexa = VBHexaToHexa & Mid(ValeurVBHexa, 3, 2)
End Function
Conclusion
Pour convertir , c'est tres simple. Exemple je veut convertir la couleur decimale 14698369 en Hexadecimal : ConvertColors.DecimalToHexa(14698369) une couleur RVB en Hexa : ConvertColors.RvbToHexa(Rouge, Vert, Bleu) ect... y'a pas plus simple :D J'ai pas inclus de gestion d'erreurs , faut bien vous en laisser un peu :P J'ai pas un gros niveaux en VB , hesitez pas a donez vos commentaires ;)
Sources du même auteur
Sources de la même categorie
Commentaires et avis
|
|