Couleur de cellule en RGB

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
FdeCourt
Le #20766091
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.
michdenis
Le #20766231
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"
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
Paul Durant
Le #20768081
Merci pour votre aide
Paul
michdenis
Le #20768281
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" O#
Merci pour votre aide
Paul
Publicité
Poster une réponse
Anonyme