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

Informations Fonction "Hex"

  • Initiateur de la discussion Initiateur de la discussion VIARD
  • Date de début Date de début

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 !

VIARD

XLDnaute Impliqué
Lorsque l’on utilise la fonction "HEX".
Exemple :
IntColor = ActiveCell.Intérior.Color
HexDigits = Hex(IntColor)
donne un format --> (BGR), pour la couleur rouge on aura « 0000FF »
ce qui veut dire --> le Format est inversé --> BGR
Pour avoir le format RGB
Format --> "FF 00 00"

Pour remédier à cet état, j’ai créé cette fonction.

La 1° fonction remet dans l’ordre pour avoir "RGB"

VB:
'===================
Sub Test1_BGR_vers_RGB()
Dim Intcolor As Long

Intcolor = ActiveCell.Interior.Color
MsgBox "BGR = " & Hex(Intcolor) & Chr(10) _
& "RGB = " & BGRversRGB(Intcolor)
End Sub
'===================
Function BGRversRGB(ByVal Colorvalue As Long) As String
Dim Rouge As String, Vert As String, Bleu As String
Dim X As Integer, Color As String

Color = Hex(Colorvalue)
X = 6 - Len(Color)
Color = String(X, "0") & Color
    Bleu = Left(Color, 2)
    Vert = Mid(Color, 3, 2)
    Rouge = Right(Color, 2)
BGRversRGB = Rouge & Vert & Bleu
End Function
'===================

Cette première fonction utilise "HEX"
Ici « Color » valeur hexa , je complète les zéros manquant au début du composant.
De façon à obtenir un hexa exploitable.

La 2° fonction est différente , j’ai supprimé la fonction "HEX",

Et je traite directement.

Code:
'===================
Sub Test2_Couleur()
Dim Intcolor As Long

Intcolor = ActiveCell.Interior.Color
MsgBox "BGR = " & Hex(Intcolor) & Chr(10) _
& "RGB = " & RGBversHex(Intcolor)
End Sub
'===================
Function RGBversHex(ByVal Colorvalue As Long) As String
Dim Rouge As Integer, Vert As Integer, Bleu As Integer

Rouge = Colorvalue And &HFF
Vert = (Colorvalue \ 256) And &HFF
Bleu = (Colorvalue \ 65536) And &HFF
RGBversHex = Right("0" & Hex(Rouge), 2) _
            & Right("0" & Hex(Vert), 2) _
            & Right("0" & Hex(Bleu), 2)
End Function
'===================

La fonction traite directement le nombre long (le nombre encode la valeur RGB en un seul entier)
&HFF est une valeur hexadécimale équivalente à 255

La 3° fonction est identique à la deuxième, sauf tout est traité en hexa.

Code:
'===================
Sub Test3_Couleur()
Dim Intcolor As Long

Intcolor = ActiveCell.Interior.Color
MsgBox "BGR = " & Hex(Intcolor) & Chr(10) _
& "RGB = " & RGB_Hex(Intcolor)
End Sub
'===================
Function RGB_Hex(ByVal Colorvalue As Long) As String
Dim Rouge As Integer, Vert As Integer, Bleu As Integer
    
    Rouge = Colorvalue And &HFF
    Vert = (Colorvalue \ &H100) And &HFF
    Bleu = (Colorvalue \ &H10000) And &HFF
    RGB_Hex = Right("0" & Hex(Rouge), 2) _
            & Right("0" & Hex(Vert), 2) _
            & Right("0" & Hex(Bleu), 2)
End Function
'===================

Ces trois fonctions donnent le même résultat.
Salutation.
 
Bonjour, good job, tests supers !
 
Bonjour
il y avait ma fonction htmlX
tu la trouve dans mes diverses ressources pour range to html diverses versions
tu la trouve ici aussi sur dvp
qui détaille le travail que tu decris
tu devrais même en trouver une ici sur xld qui fait les 3 long , hex, rgb et fait aussi le reverse

VB:
Function coul_XL_to_coul_HTMLX(couleur)
'collection fonction perso
'fonction Color XL to HTMLCOLOR ---> By Patricktoulon (2016)
    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
 
- 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

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