Dennis souhaite remplir trois cellules (A1: A3) avec des valeurs RVB et qu’une autre cellule (C1) affiche la couleur en fonction de ces valeurs. Il se demande s’il existe un moyen simple de le faire.

Le moyen le plus simple de procéder consiste à utiliser une macro qui récupère les valeurs de A1: A3, puis modifie la couleur de la cellule C1 en fonction de ces valeurs.

Idéalement, la macro doit vérifier que les valeurs des cellules sources sont comprises entre 0 et 255. La macro suivante fonctionne parfaitement à cette fin:

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, Range("A1:A3")) Is Nothing Then         lRed = Abs(Range("A1").Value) Mod 256         lGreen = Abs(Range("A2").Value) Mod 256         lBlue = Abs(Range("A3").Value) Mod 256

Range("C1").Interior.Color = RGB(lRed, lGreen, lBlue)

End If End Sub

Notez que cette macro doit être ajoutée au code de la feuille de calcul sur laquelle les cellules existent. (Cliquez avec le bouton droit sur l’onglet de la feuille et choisissez Afficher le code, puis ajoutez la macro à cet endroit.) Il s’agit d’un gestionnaire d’événements qui s’exécute automatiquement chaque fois qu’il y a un changement dans la cellule A1, A2 ou A3.

Les valeurs de ces cellules sont assurées d’être comprises entre 0 et 255 en prenant la valeur absolue du contenu de la cellule et en utilisant le reste (modulo)

de le diviser par 256.

La macro ne fonctionne que lorsque vous modifiez manuellement une valeur dans la plage A1: A3 (vos valeurs RVB). Si les valeurs de cette plage sont le résultat de formules, cela ne fonctionnera pas correctement car vous ne modifiez pas manuellement les cellules. Dans ce cas, vous devriez utiliser cette modification plus simple de la macro:

Private Sub Worksheet_Change(ByVal Target As Range)

lRed = Abs(Range("A1").Value) Mod 256     lGreen = Abs(Range("A2").Value) Mod 256     lBlue = Abs(Range("A3").Value) Mod 256

Range("C1").Interior.Color = RGB(lRed, lGreen, lBlue)

End Sub

Cette version met à jour la couleur chaque fois que quelque chose est modifié dans la feuille de calcul, quel que soit l’endroit où la modification se produit.

_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 (9092) s’applique à Microsoft Excel 2007, 2010, 2013, 2016, 2019 et Excel dans Office 365. Vous pouvez trouver une version de cette astuce pour l’ancienne interface de menu d’Excel ici:

link: / excel-montrant_RGB_Colors_in_a_Cell [Affichage des couleurs RVB dans une cellule].