Détermination de la valeur RVB d’une couleur (Microsoft Excel)
Neil utilise beaucoup les couleurs dans ses feuilles de calcul. Il sait qu’il peut générer une couleur basée sur une valeur RVB numérique (et comme expliqué dans d’autres problèmes ExcelTips). Neil aimerait faire le contraire: déterminer une valeur RVB. Il se demande s’il existe un moyen de retourner (via une fonction ou une macro)
la valeur RVB de la couleur utilisée pour remplir une cellule.
Excel n’inclut pas de fonction pour ce faire, mais vous pouvez créer votre propre fonction définie par l’utilisateur. La fonction que vous utilisez dépend de ce que vous souhaitez réellement renvoyer dans votre feuille de calcul. Par exemple, si vous souhaitez renvoyer le code hexadécimal traditionnel à six caractères pour les couleurs RVB, vous utiliserez la macro très simple suivante:
Function getRGB1(rcell) As String Dim sColor As String sColor = Right("000000" & Hex(rcell.Interior.Color), 6) getRGB1 = Right(sColor, 2) & Mid(sColor, 3, 2) & Left(sColor, 2) End Function
Cette macro examine la couleur intérieure de toute cellule que vous référencez, place les valeurs hexadécimales de la couleur dans le bon ordre et renvoie la chaîne à Excel. Pour utiliser la fonction, vous l’appelez simplement, dans votre feuille de calcul, avec une cellule référencée de cette manière:
=getRGB1(B4)
Cependant, vous ne voudrez peut-être pas les codes hexadécimaux traditionnels pour les couleurs RVB.
Si vous voulez obtenir les valeurs décimales pour chacune des couleurs, la macro suivante renvoie cela:
Function getRGB2(rcell) As String Dim C As Long Dim R As Long Dim G As Long Dim B As Long C = rcell.Interior.Color R = C Mod 256 G = C \ 256 Mod 256 B = C \ 65536 Mod 256 getRGB2 = "R=" & R & ", G=" & G & ", B=" & B End Function
Appelée de la même manière que la macro getRGB1, cette version renvoie une chaîne telle que « R = 255, G = 204, B = 0 ». Vous pouvez également modifier encore plus la macro afin qu’elle renvoie une valeur unique, basée sur un paramètre que vous avez défini:
Function getRGB3(rcell As Range, Optional opt As Integer) As Long Dim C As Long Dim R As Long Dim G As Long Dim B As Long C = rcell.Interior.Color R = C Mod 256 G = C \ 256 Mod 256 B = C \ 65536 Mod 256 If opt = 1 Then getRGB3 = R ElseIf opt = 2 Then getRGB3 = G ElseIf opt = 3 Then getRGB3 = B Else getRGB3 = C End If End Function
Pour utiliser la macro, ajoutez simplement un deuxième paramètre à la fonction utilisée dans votre feuille de calcul, en spécifiant ce que vous voulez:
=getRGB3(B4,1)
Si le deuxième paramètre est 1, la fonction renvoie uniquement la valeur rouge. Si vous spécifiez un deuxième paramètre de 2, la valeur verte est renvoyée et 3 renvoie la valeur bleue. Toute autre valeur du deuxième paramètre (ou si vous l’omettez complètement) renvoie la valeur décimale complète de la couleur intérieure.
Si vous ne souhaitez pas créer une macro ou si vous souhaitez déterminer les couleurs dans plus que votre feuille de calcul Excel, vous pouvez envisager un utilitaire tiers. Celui qui semble intéressant est Instant Eyedropper, qui est gratuit. Vous pouvez trouver plus d’informations à ce sujet ici:
http://instant-eyedropper.com
_Note: _
Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites ExcelTips), j’ai préparé une page spéciale qui comprend des informations utiles.
lien: / excelribbon-ExcelTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur]
.
ExcelTips est votre source pour une formation Microsoft Excel rentable.
Cette astuce (10179) s’applique à Microsoft Excel 97, 2000, 2002 et 2003.
Vous pouvez trouver une version de cette astuce pour l’interface ruban d’Excel (Excel 2007 et versions ultérieures) ici:
link: / excelribbon-Determining_the_RGB_Value_of_a_Color [Détermination de la valeur RVB d’une couleur]
.