Extraction des composantes rvg (rgb pour les anglophones) d'une valeur long

Contenu du snippet

Après avoir cherché sur plusieurs sites une fonction qui permette d'extraire ces composantes, sans succès, j'ai du prendre le pas sur ma feinéantise et me la faire moi ^_^
Et puisqu'on y est, autant en faire profiter tout le monde !

Source / Exemple :


Public Function ExtractRGB(ByVal RGBColor As Long, ByRef OutRed As Integer, OutGreen As Integer, OutBlue As Integer) As String

  Dim tmpVal As String
  
  ' Pour avoir la couleur en Hexa
  ' et d'etre sur qu'elle soit au format BBVVRR
  ' Et oui, en Hexa, ca apparait à l'envers ...
  tmpVal = Right$("000000" & Hex(RGBColor), 6)
  
  
  ' Recupération des différentes composantes
  ' Conversion en numerique de la composante
  ' la l'ajout du "&H" au début et du "&" à la fin
  ' servent à faire comprendre à la fonction Val que
  ' c'est de l'hexa - Merci JPP
  OutRed = Val("&H" & Right$(tmpVal, 2) & "&")
  OutGreen = Val("&H" & Mid$(tmpVal, 3, 2) & "&")
  OutBlue = Val("&H" & Left$(tmpVal, 2) & "&")
  
  ' Sortie en chaine de caractere, séparateur ","
  ExtractRGB = OutRed & "," & OutGreen & "," & OutBlue
  
End Function

Conclusion :


Grand merci à JPP pour son aide ^_^ sans toi j'aurai bien galéré avec ce Val

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.