OVH Cloud OVH Cloud

Pb couleur

5 réponses
Avatar
Jean-Claude
Bonjour,
Avec la fonction RGB, on peut déterminer finement la couleur que l'on
désire.
Mais est-il possible à partir d'une couleur quelconque d'obtenir ses
composante RGB
Merci

--
A+
Jean-Claude
jcvalAenlever@wanamoo.fr - Aenlever bien évidement

5 réponses

Avatar
Misange
bonsoir,
problème récurrent. JE te conseille d'aller lire ce qu'il y a sur ce
sujet dans la page formats d'excelabo. Pas très simple la gestion des
couleurs excelliennes mais on finit par y arriver !

Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta


Jean-Claude wrote:
Bonjour,
Avec la fonction RGB, on peut déterminer finement la couleur que l'on
désire.
Mais est-il possible à partir d'une couleur quelconque d'obtenir ses
composante RGB
Merci



Avatar
michdenis
Bonjour Jean-Claude,

Important :

A ) Excel ne peut storer que 56 couleurs différentes dans une palette de couleurs.
B ) Chaque classeur ne peut contenir plus d'une palette de couleurs
C ) Tu peux créer autant de palettes de couleurs que tu désires et les afficher dans excel, une à la fois.


Voici comment tu peux t'y prendre :

Dans le haut d'un module standard :
'-----------------------------------
Public Function GetRValue(col As Long) As Byte
GetRValue = col And &HFF&
End Function

Public Function GetGValue(col As Long) As Byte
GetGValue = (col And &HFF00&) / &H100&
End Function

Public Function GetBValue(col As Long) As Byte
GetBValue = (col And &HFF0000) / &H10000
End Function
'-----------------------------------

Voici la procédure que tu dois exécuter
Prend le temps de définir le nom de la feuille
et de la cellule cible contenant la couleur à décoder.
'-----------------------------------
Sub ObtenirParamètreFonctionRGB()

Dim R As Integer, G As Integer
Dim B As Integer, Rg As Range

With Worksheets("Feuil1")
Set Rg = .Range("A1")
End With

With Rg.Interior
'Composant - Rouge
R = GetRValue(.Color)
'Composant - Green(Vert)
G = GetGValue(.Color)
'Composant - Bleu
B = GetBValue(.Color)
End With

'Test : Appliquer la même
'couleur à la cellule de droite
Rg.Offset(, 1).Interior.Color = RGB(R, G, B)

MsgBox "Les paramètres de RGB() : " & _
"RGB(" & R & "," & G & "," & B & ")"

Set Rg = Nothing

End Sub
'-----------------------------------


Salutations!





"Jean-Claude" a écrit dans le message de news:brqe85$qd5$
Bonjour,
Avec la fonction RGB, on peut déterminer finement la couleur que l'on
désire.
Mais est-il possible à partir d'une couleur quelconque d'obtenir ses
composante RGB
Merci

--
A+
Jean-Claude
- Aenlever bien évidement
Avatar
michdenis
Bonjour Jean-Claude,

Voici un autre méthode qui fait sensiblement le même travail :

Les 2 procédures soumises sont aussi valides si tu recherches à identifier les paramètres de la fonction Rgb() de la couleur
de fond d'un bouton de commande d'un formulaire, la couleur d'une bordure... il s'agit d'utiliser la propriété de l'objet qui
retourne la couleur de l'objet.

Exemple d'objets et de leur propriété "Couleur"

'La couleur du texte d'un bouton de commande
A = Me.CommandButton1.ForeColor
'La couleur de fond d'un bouton de commande
B = Me.CommandButton1.BackColor
'La bordure inférieure d'une cellule.
C = Range("A1").Borders(xlEdgeBottom).Color

'-----------------------------------
Sub ParametreFonctionRgb()

'Déclaration des Variables
Dim LaCouleur As Long, Mes As String
Dim Rouge As Integer, Vert As Integer
Dim Bleu As Integer, HexLaCouleur
Dim A As Integer

'Identification de la couleur de l'objet
With Worksheets("Feuil1")
LaCouleur = Range("A1").Interior.Color
End With

'Composant pour le Rouge
Rouge = Int(LaCouleur / 256 ^ 0) Mod 256

'Composant pour le Vert
Vert = Int(LaCouleur / 256 ^ 1) Mod 256

'Composant pour le Bleu
Bleu = Int(LaCouleur / 256 ^ 2) Mod 256

'Valeur de la couleur en hexadecimal
HexLaCouleur = Hex(LaCouleur)

'Obtenir 8 digits
If Len(HexLaCouleur) < 8 Then
For A = 1 To 8 - Len(HexLaCouleur)
HexLaCouleur = "0" & HexLaCouleur
Next
End If

'Définir le message ...
Mes = "La couleur (en décimal) est = " & LaCouleur & _
vbCrLf & vbCrLf
Mes = Mes & "Valeur des paramètres de Rgb " & _
"(""rouge"",""Vert"",""Bleu"")" & _
" est : " & vbCrLf & _
"Rgb(" & Rouge & "," & Vert & "," & Bleu & ")" _
& vbCrLf & vbCrLf
Mes = Mes & "La couleur en hexadécimal est : " & _
HexLaCouleur

MsgBox Mes, vbOKOnly + vbInformation, "Voilà"

End Sub
'-----------------------------------


Salutations!


P.S. Ces informations furent glanées sur le net à un moment donné...et réorganisées pour la circonstance mais je n'ai pu la
trace des documents d'origine dans mes notes. Désolé pour les auteurs.




"michdenis" a écrit dans le message de news:
Bonjour Jean-Claude,

Important :

A ) Excel ne peut storer que 56 couleurs différentes dans une palette de couleurs.
B ) Chaque classeur ne peut contenir plus d'une palette de couleurs
C ) Tu peux créer autant de palettes de couleurs que tu désires et les afficher dans excel, une à la fois.


Voici comment tu peux t'y prendre :

Dans le haut d'un module standard :
'-----------------------------------
Public Function GetRValue(col As Long) As Byte
GetRValue = col And &HFF&
End Function

Public Function GetGValue(col As Long) As Byte
GetGValue = (col And &HFF00&) / &H100&
End Function

Public Function GetBValue(col As Long) As Byte
GetBValue = (col And &HFF0000) / &H10000
End Function
'-----------------------------------

Voici la procédure que tu dois exécuter
Prend le temps de définir le nom de la feuille
et de la cellule cible contenant la couleur à décoder.
'-----------------------------------
Sub ObtenirParamètreFonctionRGB()

Dim R As Integer, G As Integer
Dim B As Integer, Rg As Range

With Worksheets("Feuil1")
Set Rg = .Range("A1")
End With

With Rg.Interior
'Composant - Rouge
R = GetRValue(.Color)
'Composant - Green(Vert)
G = GetGValue(.Color)
'Composant - Bleu
B = GetBValue(.Color)
End With

'Test : Appliquer la même
'couleur à la cellule de droite
Rg.Offset(, 1).Interior.Color = RGB(R, G, B)

MsgBox "Les paramètres de RGB() : " & _
"RGB(" & R & "," & G & "," & B & ")"

Set Rg = Nothing

End Sub
'-----------------------------------


Salutations!





"Jean-Claude" a écrit dans le message de news:brqe85$qd5$
Bonjour,
Avec la fonction RGB, on peut déterminer finement la couleur que l'on
désire.
Mais est-il possible à partir d'une couleur quelconque d'obtenir ses
composante RGB
Merci

--
A+
Jean-Claude
- Aenlever bien évidement
Avatar
michdenis
Et un dernier détail,

Si l'usager veut utiliser la valeur hexadécimal pour définir la propriété d'un bouton de commande, il doit utiliser la
syntaxe suivante : &H ValeurTrouvépar la procédure &


Salutations!


"michdenis" a écrit dans le message de news:%
Bonjour Jean-Claude,

Voici un autre méthode qui fait sensiblement le même travail :

Les 2 procédures soumises sont aussi valides si tu recherches à identifier les paramètres de la fonction Rgb() de la couleur
de fond d'un bouton de commande d'un formulaire, la couleur d'une bordure... il s'agit d'utiliser la propriété de l'objet qui
retourne la couleur de l'objet.

Exemple d'objets et de leur propriété "Couleur"

'La couleur du texte d'un bouton de commande
A = Me.CommandButton1.ForeColor
'La couleur de fond d'un bouton de commande
B = Me.CommandButton1.BackColor
'La bordure inférieure d'une cellule.
C = Range("A1").Borders(xlEdgeBottom).Color

'-----------------------------------
Sub ParametreFonctionRgb()

'Déclaration des Variables
Dim LaCouleur As Long, Mes As String
Dim Rouge As Integer, Vert As Integer
Dim Bleu As Integer, HexLaCouleur
Dim A As Integer

'Identification de la couleur de l'objet
With Worksheets("Feuil1")
LaCouleur = Range("A1").Interior.Color
End With

'Composant pour le Rouge
Rouge = Int(LaCouleur / 256 ^ 0) Mod 256

'Composant pour le Vert
Vert = Int(LaCouleur / 256 ^ 1) Mod 256

'Composant pour le Bleu
Bleu = Int(LaCouleur / 256 ^ 2) Mod 256

'Valeur de la couleur en hexadecimal
HexLaCouleur = Hex(LaCouleur)

'Obtenir 8 digits
If Len(HexLaCouleur) < 8 Then
For A = 1 To 8 - Len(HexLaCouleur)
HexLaCouleur = "0" & HexLaCouleur
Next
End If

'Définir le message ...
Mes = "La couleur (en décimal) est = " & LaCouleur & _
vbCrLf & vbCrLf
Mes = Mes & "Valeur des paramètres de Rgb " & _
"(""rouge"",""Vert"",""Bleu"")" & _
" est : " & vbCrLf & _
"Rgb(" & Rouge & "," & Vert & "," & Bleu & ")" _
& vbCrLf & vbCrLf
Mes = Mes & "La couleur en hexadécimal est : " & _
HexLaCouleur

MsgBox Mes, vbOKOnly + vbInformation, "Voilà"

End Sub
'-----------------------------------


Salutations!


P.S. Ces informations furent glanées sur le net à un moment donné...et réorganisées pour la circonstance mais je n'ai pu la
trace des documents d'origine dans mes notes. Désolé pour les auteurs.




"michdenis" a écrit dans le message de news:
Bonjour Jean-Claude,

Important :

A ) Excel ne peut storer que 56 couleurs différentes dans une palette de couleurs.
B ) Chaque classeur ne peut contenir plus d'une palette de couleurs
C ) Tu peux créer autant de palettes de couleurs que tu désires et les afficher dans excel, une à la fois.


Voici comment tu peux t'y prendre :

Dans le haut d'un module standard :
'-----------------------------------
Public Function GetRValue(col As Long) As Byte
GetRValue = col And &HFF&
End Function

Public Function GetGValue(col As Long) As Byte
GetGValue = (col And &HFF00&) / &H100&
End Function

Public Function GetBValue(col As Long) As Byte
GetBValue = (col And &HFF0000) / &H10000
End Function
'-----------------------------------

Voici la procédure que tu dois exécuter
Prend le temps de définir le nom de la feuille
et de la cellule cible contenant la couleur à décoder.
'-----------------------------------
Sub ObtenirParamètreFonctionRGB()

Dim R As Integer, G As Integer
Dim B As Integer, Rg As Range

With Worksheets("Feuil1")
Set Rg = .Range("A1")
End With

With Rg.Interior
'Composant - Rouge
R = GetRValue(.Color)
'Composant - Green(Vert)
G = GetGValue(.Color)
'Composant - Bleu
B = GetBValue(.Color)
End With

'Test : Appliquer la même
'couleur à la cellule de droite
Rg.Offset(, 1).Interior.Color = RGB(R, G, B)

MsgBox "Les paramètres de RGB() : " & _
"RGB(" & R & "," & G & "," & B & ")"

Set Rg = Nothing

End Sub
'-----------------------------------


Salutations!





"Jean-Claude" a écrit dans le message de news:brqe85$qd5$
Bonjour,
Avec la fonction RGB, on peut déterminer finement la couleur que l'on
désire.
Mais est-il possible à partir d'une couleur quelconque d'obtenir ses
composante RGB
Merci

--
A+
Jean-Claude
- Aenlever bien évidement
Avatar
Jean-Claude
Merci pour vos réponses
Au travail visiblement
A+