OVH Cloud OVH Cloud

Code RGB couleur - le retour

8 réponses
Avatar
vincent.topsent
Bonjour =E0 tous,

je cherche a recuperer le code RGB d'une couleur PERSONNALISEE que j'ai
bien definit dans tools>Options>Colors (tiens je vais faire mon malin
et je traduis : outils>options>onglet couleurs). J'ai utilis=E9 pas mal
de choses differentes avec des r=E9sultats qui pourraient m'amuser si
cela ne faisait pas 2 jours que j'essayais de decyrpter le mystere des
couleurs excel.

Voici le dernier code en date (gr=E2ce =E0 un post de MichDenis) :

Public Function GetRValue(col As Long) As Byte
GetRValue =3D (col And &HFF&)
End Function

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

Public Function GetBValue(col As Long) As Byte
GetBValue =3D (col And &HFF0000) / &H10000
End Function
Sub ObtenirParametreFonctionRGB()

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

With Worksheets("Sheet1")
Set Rg =3D .Range("C11")
End With

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

'Test : Appliquer la m=EAme couleur =E0 la cellule de droite
'Rg.Offset(, 1).Interior.Color =3D RGB(R, G, B)

Cells(11, 4).Value =3D R
Cells(11, 5).Value =3D G
Cells(11, 6).Value =3D B

Set Rg =3D Nothing
R =3D 0
G =3D 0
B =3D 0
End Sub

Le code RGB que je cherche est (213, 221, 204) mais Excel me retourne
le code (153,153,255) qui est - quand je parlai de choses marrantes -
le code de la couleur personnalis=E9e par d=E9faut dans Excel que j'ai
modifi=E9 dans Tools>... pour avoir MA couleur =E0 moi. De plus, il m'est
arriv=E9 en lan=E7ant maintes fois la macro qu'excel me trouve le BON
code couleur. Ai-je faut=E9 qq part, y'a t'il une feinte que je n'ai pas
vu ?

Toute aide, m=EAme remontage de moral, est la bienvenue. Merci.

8 réponses

Avatar
Top100
Quand je parlai de bizarrerie :

si jamais je modifie ma fonction GETGVALUE en remplaçant &H100& par
&H0& et que je lance ma macro, forcement ça plante (div par 0). Mais
si jamais je remet &H100& après le debug et que je relance la macro :
Oh Miracle ! j'obtiens bien 221 pour le Vert et non pas 153 comme ce
§;ù$#*$^ d'excel me le donne d'habitude.


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



Avatar
MichDenis
Voici un fichier exemple sur la façon de résoudre l'énigme !
http://cjoint.com/?mmwSYnW6xh

Je crois que c'est la première fois qu'une solution est apportée
sur ce forum.

Est-ce que cela résout vraiment l'énigme Gee Dee ? ;-))





a écrit dans le message de news:

Bonjour à tous,

je cherche a recuperer le code RGB d'une couleur PERSONNALISEE que j'ai
bien definit dans tools>Options>Colors (tiens je vais faire mon malin
et je traduis : outils>options>onglet couleurs). J'ai utilisé pas mal
de choses differentes avec des résultats qui pourraient m'amuser si
cela ne faisait pas 2 jours que j'essayais de decyrpter le mystere des
couleurs excel.

Voici le dernier code en date (grâce à un post de MichDenis) :

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
Sub ObtenirParametreFonctionRGB()

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

With Worksheets("Sheet1")
Set Rg = .Range("C11")
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)

Cells(11, 4).Value = R
Cells(11, 5).Value = G
Cells(11, 6).Value = B

Set Rg = Nothing
R = 0
G = 0
B = 0
End Sub

Le code RGB que je cherche est (213, 221, 204) mais Excel me retourne
le code (153,153,255) qui est - quand je parlai de choses marrantes -
le code de la couleur personnalisée par défaut dans Excel que j'ai
modifié dans Tools>... pour avoir MA couleur à moi. De plus, il m'est
arrivé en lançant maintes fois la macro qu'excel me trouve le BON
code couleur. Ai-je fauté qq part, y'a t'il une feinte que je n'ai pas
vu ?

Toute aide, même remontage de moral, est la bienvenue. Merci.
Avatar
MichDenis
Désolé pour le message précédent et le fichier erronné ;-)


Voici un fichier exemple sur la façon de résoudre l'énigme !

2 solutions pour le prix d'une !!!

http://cjoint.com/?mmwSYnW6xh


Est-ce que cela résout vraiment l'énigme Gee Dee ? ;-))





a écrit dans le message de news:

Bonjour à tous,

je cherche a recuperer le code RGB d'une couleur PERSONNALISEE que j'ai
bien definit dans tools>Options>Colors (tiens je vais faire mon malin
et je traduis : outils>options>onglet couleurs). J'ai utilisé pas mal
de choses differentes avec des résultats qui pourraient m'amuser si
cela ne faisait pas 2 jours que j'essayais de decyrpter le mystere des
couleurs excel.

Voici le dernier code en date (grâce à un post de MichDenis) :

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
Sub ObtenirParametreFonctionRGB()

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

With Worksheets("Sheet1")
Set Rg = .Range("C11")
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)

Cells(11, 4).Value = R
Cells(11, 5).Value = G
Cells(11, 6).Value = B

Set Rg = Nothing
R = 0
G = 0
B = 0
End Sub

Le code RGB que je cherche est (213, 221, 204) mais Excel me retourne
le code (153,153,255) qui est - quand je parlai de choses marrantes -
le code de la couleur personnalisée par défaut dans Excel que j'ai
modifié dans Tools>... pour avoir MA couleur à moi. De plus, il m'est
arrivé en lançant maintes fois la macro qu'excel me trouve le BON
code couleur. Ai-je fauté qq part, y'a t'il une feinte que je n'ai pas
vu ?

Toute aide, même remontage de moral, est la bienvenue. Merci.
Avatar
jps
es-tu bien sûr, denis, que le fichier n'est plus erroné, cette fois-ci?
moi, j'ai comme une redondance et l'énigme de ce pauvre Gee Dee, toujours
sans internet me semble-t-il, reste entière
allez, allez, le québécois, remets-nous tout ça black et d'équerre
jps

"MichDenis" a écrit dans le message de news:

Désolé pour le message précédent et le fichier erronné ;-)


Voici un fichier exemple sur la façon de résoudre l'énigme !

2 solutions pour le prix d'une !!!

http://cjoint.com/?mmwSYnW6xh


Est-ce que cela résout vraiment l'énigme Gee Dee ? ;-))





a écrit dans le message de news:

Bonjour à tous,

je cherche a recuperer le code RGB d'une couleur PERSONNALISEE que j'ai
bien definit dans tools>Options>Colors (tiens je vais faire mon malin
et je traduis : outils>options>onglet couleurs). J'ai utilisé pas mal
de choses differentes avec des résultats qui pourraient m'amuser si
cela ne faisait pas 2 jours que j'essayais de decyrpter le mystere des
couleurs excel.

Voici le dernier code en date (grâce à un post de MichDenis) :

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
Sub ObtenirParametreFonctionRGB()

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

With Worksheets("Sheet1")
Set Rg = .Range("C11")
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)

Cells(11, 4).Value = R
Cells(11, 5).Value = G
Cells(11, 6).Value = B

Set Rg = Nothing
R = 0
G = 0
B = 0
End Sub

Le code RGB que je cherche est (213, 221, 204) mais Excel me retourne
le code (153,153,255) qui est - quand je parlai de choses marrantes -
le code de la couleur personnalisée par défaut dans Excel que j'ai
modifié dans Tools>... pour avoir MA couleur à moi. De plus, il m'est
arrivé en lançant maintes fois la macro qu'excel me trouve le BON
code couleur. Ai-je fauté qq part, y'a t'il une feinte que je n'ai pas
vu ?

Toute aide, même remontage de moral, est la bienvenue. Merci.





Avatar
MichDenis
| moi, j'ai comme une redondance
***ça je sais....un verre après l'autre ...;-)

| et l'énigme de ce pauvre Gee Dee, toujours
| sans internet me semble-t-il, reste entière

Tu veux bien faire ce petit test : et tu peux le répéter à volonté...

1- À partir de la barre des menus / outils / optiions / onglet couleur
2- Sélection une couleur (disons le bouton dans le haut du coin supérieur gauche
3 - Un clic sur le bouton "Modifier" / onglet "personnalisées"
4 - Sélectionne la couleur que tu désires
5 - Note les chiffres des 3 éléments Rouge , Vert et Bleu
6 - Tu fermes et tu affectes la cellule A1 de cette couleur
7 - Si tu cliques sur un des 2 boutons de commande dans la feuille,
Est-ce que tu obtiens autre chose que les 3 éléments affichées
dans la boîte de dialogue "personnalisées" sur les couleurs ?

Si tu me dis comment tu as procédé pour ton test insatisfaisant,
je veux bien revoir le procédé s'il y a lieu !
Avatar
vincent.topsent
Merci de votre aide mais cela ne marche toujours pas. De plus, je dois
avouer que la macro test() de ce fichier dépasse mes compétences. Je
vais regarder tout ça de plus près... faut pas mourrir idiot !



es-tu bien sûr, denis, que le fichier n'est plus erroné, cette fois-c i?
moi, j'ai comme une redondance et l'énigme de ce pauvre Gee Dee, toujou rs
sans internet me semble-t-il, reste entière
allez, allez, le québécois, remets-nous tout ça black et d'équerre
jps

"MichDenis" a écrit dans le message de news:

Désolé pour le message précédent et le fichier erronné ;-)


Voici un fichier exemple sur la façon de résoudre l'énigme !

2 solutions pour le prix d'une !!!

http://cjoint.com/?mmwSYnW6xh


Est-ce que cela résout vraiment l'énigme Gee Dee ? ;-))





a écrit dans le message de news:

Bonjour à tous,

je cherche a recuperer le code RGB d'une couleur PERSONNALISEE que j'ai
bien definit dans tools>Options>Colors (tiens je vais faire mon malin
et je traduis : outils>options>onglet couleurs). J'ai utilisé pas mal
de choses differentes avec des résultats qui pourraient m'amuser si
cela ne faisait pas 2 jours que j'essayais de decyrpter le mystere des
couleurs excel.

Voici le dernier code en date (grâce à un post de MichDenis) :

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
Sub ObtenirParametreFonctionRGB()

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

With Worksheets("Sheet1")
Set Rg = .Range("C11")
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)

Cells(11, 4).Value = R
Cells(11, 5).Value = G
Cells(11, 6).Value = B

Set Rg = Nothing
R = 0
G = 0
B = 0
End Sub

Le code RGB que je cherche est (213, 221, 204) mais Excel me retourne
le code (153,153,255) qui est - quand je parlai de choses marrantes -
le code de la couleur personnalisée par défaut dans Excel que j'ai
modifié dans Tools>... pour avoir MA couleur à moi. De plus, il m'e st
arrivé en lançant maintes fois la macro qu'excel me trouve le BON
code couleur. Ai-je fauté qq part, y'a t'il une feinte que je n'ai pas
vu ?

Toute aide, même remontage de moral, est la bienvenue. Merci.







Avatar
GeeDee
Bonsour® cent Taupes Sans vin ;o(((
petit rappel sur les couleurs :
1 - les couleurs des cellules sont limtées à un choix de 56 couleurs
possibles parmi les 16 millions et quelques que propose la fonction RGB.
2 - les couleurs sont définies dans une palette propre à chaque classeur,
cette palette peut etre standard par défaut ou personnalisée ( voir outils >
options > couleurs > personnaliser)
3 - l'affectation d'une couleur via la fonction RGB, c'est à dire
l'utilisation de la valeur "Cellule.Interior.Color" NE SIGNIFIE EN AUCUN CAS
sont appartenance à la palette active.
4 - Lors de l'utilisation d'un code RGB Excel affiche la couleur approchante
la plus proche existante dans la palette,
cette couleur la plus proche semble définie en terme de luminosité, fonction
qui n'est pas mise à disposition de l'utilisateur !!!
5 - la palette est utilisable via un numéro d'index :
"Cellule.Interior.ColorIndex"
6 - toute formule basée sur la détection d'une couleur, n'est rafraichie que
si il y a recalcul de la feuille (manuel ou automatique), un changement de
couleur ne déclenche pas de recalcul !!!
7 - l'aspect des palettes est different selon les diverses versions d'excel,
bien que les index des palettes par défaut fassent
référence aux mêmes couleurs.

quelques fonctions VBA :
B1=Range("A1").Interior.Color ' renvoie la valeur du code RGB de la cellule
A1
Range("A1").Interior.ColorIndex ' renvoie l'index de la palette pour la
couleur de la cellule A1

quelques formules :
si dans une cellule on a la valeur d'un code RGB ( entre 0 et 16 xxx xxx)
C1ÞcHex(Range("B1");6) affiche la valeur hexadecimale correspondante
on peut dans ce cas facilement obtenir le code hexadécimal de chaque
composante
Rouge : D1=HEXDEC(DROITE(C1;2))
Vert : E1=HEXDEC(STXT(C1;3;2))
Bleu : F1=HEXDEC(GAUCHE(C1;2))
on peut également utiliser sous forme décimale
Rouge D2 =MOD(ENT(B1/256^0);256)
Vert E2=MOD(ENT(B1/256^1);256)
Bleu F2=MOD(ENT(B1/256^2);256)

les fonction HEXDEC et DECHEX sont utilsables via l'activation des macros
complémentaires "utilitaires d'analyse VBA"

voir également sur http://excelabo.net
et en toute modestie ;o)))
http://excelabo.net/moteurs/compteclic.php?nom=gd-xlcolors

plus d'explications là :
http://www.mvps.org/dmcritchie/excel/colors.htm

@+



a écrit dans le message :

Bonjour à tous,

je cherche a recuperer le code RGB d'une couleur PERSONNALISEE que j'ai
bien definit dans Tools>Options>Colors (tiens je vais faire mon malin
et je traduis : outils>options>onglet couleurs). J'ai utilisé pas mal
de choses differentes avec des résultats qui pourraient m'amuser si
cela ne faisait pas 2 jours que j'essayais de decyrpter le mystere des
couleurs excel.

Voici le dernier code en date (grâce à un post de MichDenis) :

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
Sub ObtenirParametreFonctionRGB()

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

With Worksheets("Sheet1")
Set Rg = .Range("C11")
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)

Cells(11, 4).Value = R
Cells(11, 5).Value = G
Cells(11, 6).Value = B

Set Rg = Nothing
R = 0
G = 0
B = 0
End Sub

Le code RGB que je cherche est (213, 221, 204) mais Excel me retourne
le code (153,153,255) qui est - quand je parlai de choses marrantes -
le code de la couleur personnalisée par défaut dans Excel que j'ai
modifié dans Tools>... pour avoir MA couleur à moi. De plus, il m'est
arrivé en lançant maintes fois la macro qu'excel me trouve le BON
code couleur. Ai-je fauté qq part, y'a t'il une feinte que je n'ai pas
vu ?

Toute aide, même remontage de moral, est la bienvenue. Merci.
Avatar
vincent.topsent
Là, J'y dis merci !

avec un simple "Calculate" au debut de ma macro, j'obtiens mes BONS
codes RGB. Merci pour ce petit opus sur les couleurs, ça va completer
ma collec' !
Et 1 heureux de plus !

Le code final (qui marche alleluila) pour ceux qui aurait le même pb :

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

Sub ObtenirParamètreFonctionRGB()

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

With Worksheets("Sheet1")
Set Rg = .Range("C12")
End With

Sheets("Sheet1").Calculate

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)

Cells(12, 4).Value = R
Cells(12, 5).Value = G
Cells(12, 6).Value = B


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

Set Rg = Nothing

End Sub