XL 2013 Couleur Hex non correspondante ????

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

ZAKAO

XLDnaute Junior
Bonjour,

J'ai un soucis, je m'explique je veux écrire des couleurs en format Hex mais quand je le fais, elle ne correspondent pas à leur équivalent en RGB... Quelqu'un connait la raison ?

1677855402232.png
1677855596236.png


Le code :
VB:
Sub Couleur(Lieu As Range, a)
    Lieu.Interior.Color = a
End Sub

Sub test()
    Call Couleur(Range(Cells(1, 1), Cells(10, 1)), &HDCE6F1)
    Call Couleur(Range(Cells(1, 2), Cells(10, 2)), RGB(220, 230, 241))
End Sub

Je vous remercie pour votre aide.

Cordialement,
ZAKAO
 

Pièces jointes

Solution
Bonjour,

Sub test()
Call Couleur(Range(Cells(1, 1), Cells(10, 1)), &HDCE6F1)
Call Couleur(Range(Cells(1, 2), Cells(10, 2)), RGB(220, 230, 241))
End Sub
Tu as inversé les composantes Rouge et Bleue. 😉

&HDCE6F1 = RGB(241,230,220)
&HF1CEDC = RGB(220,230,241)

La calculatrice de Windows 10 est très utile pour ce genre de chose puisqu'elle affiche une valeur en même temps en HEX, DEC, OCT et BIN. 😉
Bonjour,

Sub test()
Call Couleur(Range(Cells(1, 1), Cells(10, 1)), &HDCE6F1)
Call Couleur(Range(Cells(1, 2), Cells(10, 2)), RGB(220, 230, 241))
End Sub
Tu as inversé les composantes Rouge et Bleue. 😉

&HDCE6F1 = RGB(241,230,220)
&HF1CEDC = RGB(220,230,241)

La calculatrice de Windows 10 est très utile pour ce genre de chose puisqu'elle affiche une valeur en même temps en HEX, DEC, OCT et BIN. 😉
 
Dernière édition:
bonjour
et oui le format hex inverse le R et le B j'ai ma fonction couleur excel to html qui en l'adaptant un peu pourrait faire l'affaire

démonstration
VB:
Sub test()
Dim complet As String

'testez avec les  4 couleurs
'coul = vbRed
'coul = vbGreen
'coul = vbBlue
coul = vbMagenta

coulhex = Hex(coul)
complet = Right("000000" & coulhex, 6)
converti = "&H" & complet
str0 = Right("000000" & Hex(coul), 6): R = Right(str0, 2): G = Mid(str0, 3, 2): B = Left(str0, 2)
  


MsgBox coul & vbCrLf & coulhex & vbCrLf & complet & vbCrLf & _
"complet reconverti cidessous" & vbCrLf & converti & vbCrLf & _
"R en hex = " & R & vbCrLf & _
"G en hex = " & G & vbCrLf & _
"B en hex = " & B & vbCrLf & _
"R en long = " & Val("&H" & R) & vbCrLf & _
"G en long = " & Val("&H" & G) & vbCrLf & _
"B en long = " & Val("&H" & B)

End Sub

1677954542083.png


on vois bien que le format complet en hex inverse le rouge et le bleu
on teste avec le rose (magenta) donc le max de rouge et de bleu
1677954624821.png


ma fonction perso couleur html
Code:
Sub test2()
MsgBox coul_XL_to_coul_HTMLX(vbMagenta)
End Sub

Function coul_XL_to_coul_HTMLX(couleur)
'fonction HTMLCOLOR ---> By Patricktoulon
    Dim str0 As String, strf As String
    str0 = Right("000000" & Hex(couleur), 6): strf = Right(str0, 2) & Mid(str0, 3, 2) & Left(str0, 2)
    coul_XL_to_coul_HTMLX = "#" & strf & ""
End Function
elle me donne la couleur au format html
1677954749382.png



et si je l'adapte un peu elle me rendra le R G B
VB:
Sub test3()
Dim R&, G&, B&
coul_XL_to_RGB vbMagenta, R, G, B
MsgBox "RGB (" & Join(Array(R, G, B), " , ") & ")"
End Sub

Function coul_XL_to_RGB(couleur, R, G, B)
'fonction HTMLCOLOR ---> By Patricktoulon
     Dim str0 As String
    str0 = Right("000000" & Hex(couleur), 6): R = Val("&H" & Right(str0, 2)): G = Val("&H" & Mid(str0, 3, 2)): B = Val("&H" & Left(str0, 2))
 End Function
1677954865931.png


c'est pas compliqué la base c'est le right 6 de "000000 & hex(unecouleur)
r c'est les deux de droite
g c'est les deux du milieu
b c'est les deux de gauche

tout simplement 😉
 
bonjour
et oui le format hex inverse le R et le B j'ai ma fonction couleur excel to html qui en l'adaptant un peu pourrait faire l'affaire

démonstration
VB:
Sub test()
Dim complet As String

'testez avec les  4 couleurs
'coul = vbRed
'coul = vbGreen
'coul = vbBlue
coul = vbMagenta

coulhex = Hex(coul)
complet = Right("000000" & coulhex, 6)
converti = "&H" & complet
str0 = Right("000000" & Hex(coul), 6): R = Right(str0, 2): G = Mid(str0, 3, 2): B = Left(str0, 2)
 


MsgBox coul & vbCrLf & coulhex & vbCrLf & complet & vbCrLf & _
"complet reconverti cidessous" & vbCrLf & converti & vbCrLf & _
"R en hex = " & R & vbCrLf & _
"G en hex = " & G & vbCrLf & _
"B en hex = " & B & vbCrLf & _
"R en long = " & Val("&H" & R) & vbCrLf & _
"G en long = " & Val("&H" & G) & vbCrLf & _
"B en long = " & Val("&H" & B)

End Sub

Regarde la pièce jointe 1164877

on vois bien que le format complet en hex inverse le rouge et le bleu
on teste avec le rose (magenta) donc le max de rouge et de bleu
Regarde la pièce jointe 1164878

ma fonction perso couleur html
Code:
Sub test2()
MsgBox coul_XL_to_coul_HTMLX(vbMagenta)
End Sub

Function coul_XL_to_coul_HTMLX(couleur)
'fonction HTMLCOLOR ---> By Patricktoulon
    Dim str0 As String, strf As String
    str0 = Right("000000" & Hex(couleur), 6): strf = Right(str0, 2) & Mid(str0, 3, 2) & Left(str0, 2)
    coul_XL_to_coul_HTMLX = "#" & strf & ""
End Function
elle me donne la couleur au format html
Regarde la pièce jointe 1164879


et si je l'adapte un peu elle me rendra le R G B
VB:
Sub test3()
Dim R&, G&, B&
coul_XL_to_RGB vbMagenta, R, G, B
MsgBox "RGB (" & Join(Array(R, G, B), " , ") & ")"
End Sub

Function coul_XL_to_RGB(couleur, R, G, B)
'fonction HTMLCOLOR ---> By Patricktoulon
     Dim str0 As String
    str0 = Right("000000" & Hex(couleur), 6): R = Val("&H" & Right(str0, 2)): G = Val("&H" & Mid(str0, 3, 2)): B = Val("&H" & Left(str0, 2))
 End Function
Regarde la pièce jointe 1164880

c'est pas compliqué la base c'est le right 6 de "000000 & hex(unecouleur)
r c'est les deux de droite
g c'est les deux du milieu
b c'est les deux de gauche

tout simplement 😉
Bonjour @patricktoulon, c'est vraiment super ça aussi.

Vos MsgBox sont bien plus beaux que les miens...

Merci tout le monde pour les réponses 🙂
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 Probléme VBA
Réponses
8
Affichages
213
Réponses
0
Affichages
367
Réponses
7
Affichages
704
Retour