Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Couleur de cellule en RGB

4 réponses
Avatar
Paul Durant
Bonjour à tous

Dans une feuille, j'ai 4 colonnes nommées "R", "G", "B" et "Couleur"
Je souhaiterais que la cellule de la colonne "Couleur"
prenne la couleur RGB selon les valeurs saisies dans les cellules R G et B
de sa ligne
et cela par la magie du VBA.
Hélas, je ne suis pas un magicien du VBA
et compte sur votre magie pour m'aider à régler ce problème.

Merci par avance
Paul

4 réponses

Avatar
FdeCourt
Salut,

Je vois au moins 1 problème :
Excel (en tout cas jusqu'à 2003) accepte 56 couleurs.
Tu peux modifier la palette de couleur ainsi :
ActiveWorkbook.Colors(X) = RGB(RRR, GGG, BBB)
Ou X correspond à l'index dans la palette de couleur.

Cordialement,

F.
Avatar
michdenis
Bonjour,

En A1 -> R
En B1 -> G
En C1 -> B

En vba,
With worksheets("Feuil1") 'nom feuille à adapter
.Range("D1").interior.Color =
Rgb(.range("A1").value,.Range("B1").value,.Range("C1").value)
End with

Cependant, toutes les versions précédentes à Excel 2007, la
palette des couleurs ne peut pas contenir plus de 56 couleurs à la fois.
L'affichage en colonne D affichera la couleur la plus proche de la couleur
contenu dans la palette de couleurs du classeur et non la vraie couleur
générée par la fonction RGB().

Tu peux toujours générer autant de palette de couleurs que tu désires
en modifiant la palette par défaut du classeur, mais cela ne te donnera
pas plus de 56 couleurs disponibles par classeur à la fois.




"Paul Durant" a écrit dans le message de groupe de discussion :

Bonjour à tous

Dans une feuille, j'ai 4 colonnes nommées "R", "G", "B" et "Couleur"
Je souhaiterais que la cellule de la colonne "Couleur"
prenne la couleur RGB selon les valeurs saisies dans les cellules R G et B
de sa ligne
et cela par la magie du VBA.
Hélas, je ne suis pas un magicien du VBA
et compte sur votre magie pour m'aider à régler ce problème.

Merci par avance
Paul
Avatar
Paul Durant
Merci pour votre aide
Paul
Avatar
michdenis
Si tu tiens à afficher les couleurs en colonne D:D, tu peux
le faire en y insérant par exemple un contrôle de type
"Rectangle" au dimension de la cellule de la colonne D.

Dans ce contrôle, tu pourras afficher la vraie couleur que
renvoie la fonction Rgb() que ce soit pour le texte à l'intérieur
du contrôle et aussi comme couleur de fond du contrôle.

Voici un exemple :

à toi de définir le nom de la feuille, et délimite la plage
de cellules (mon exemple utilise A1:A10) pour laquelle,
tu aimerais définir tes couleurs....

Et remplace la fonction Rgb() par la syntaxe énoncée dans
mon message précédent !

'---------------------------------------
Sub Couleur()
Dim Rg As Range

With Worksheets("Feuil") 'nom feuille à adapter
For Each cell In .Range("A1:A10")
'Rg est une variable objet Range
'que l'on associe à la cellule en D:D
Set Rg = cell.Offset(, 3)
'Ajoute un contrôle "Rectangle" au
'dimension de la cellule en colonne D
With .Shapes.AddShape(msoShapeRectangle _
, Rg.Left, Rg.Top, Rg.Width, Rg.Height)
'Pour ajouter l'adresse de la cellule
'dans le contrôle en colonne D
With .OLEFormat.Object
.Text = cell.Address
'Pour colorer la police de caractère
.Font.Color = RGB(10, 10, 255)
End With
'pour colorer le fond du contrôle "rectangle"
.Fill.ForeColor.RGB = RGB(0, 125, 0)
End With
Next
End With
End Sub
'---------------------------------------





"Paul Durant" a écrit dans le message de groupe de discussion :
O#
Merci pour votre aide
Paul