Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2013 Couleur Hex non correspondante ????

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 ?



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

  • Couleurs.xlsm
    13.4 KB · Affichages: 3
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.

TooFatBoy

XLDnaute Barbatruc
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:

patricktoulon

XLDnaute Barbatruc
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



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


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



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


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
 

ZAKAO

XLDnaute Junior
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:

Discussions similaires

Réponses
5
Affichages
90
Réponses
0
Affichages
352
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…