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

color index

22 réponses
Avatar
Misange
hello,
Les couleurs dans xl2007 c'est très sympa. Par défaut, à partir d'un jeu
de couleurs, excel nous propose toute une gamme de dégradés du plus bel
effet, très classe tout ça, beaucoup plus joli que les 56 couleurs
flashy de base (même si on peut les modifier) dans les versions
antérieures. Oui mais il y a un mais :
je veux compter le nombre de cellules d'une couleur donnée ce qui
implique de connaitre son color.index et là ça se corse : le même color
index est utilisé pour deux tons proches mais tout de même différents.
par exemple brun tanné arrière plan 2, plus sombre 10% et brun tanné
arrière plan 2, plus sombre 25% renvoient tous deux 15 alors que brun
tanné arrière plan 2, plus sombre 50% renvoie 18 et brun tanné arrière
plan 2, plus sombre 75% rnvoie 56...
est ce que
1) quelqu'un peut vérifier
2) vous avez une idée sur la façon (autre qu'en passant par une MEFC sur
laquelle je finirai peut être bien quand même par me rabattre) de
compter mes jolies cases ?
merci :-)

Si c'est pas une question pour Modeste... C'est qu'il n'a peut être pas
xl2007 !


--
Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

10 réponses

1 2 3
Avatar
MichDenis
Émanant d'un auteur bien connu "John Walkenbach"
tiré de son bouquin :
"Excel® 2007 Power Programming with VBA"
Published by Wiley Publishing, Inc.
Library of Congress Control Number: 2006939606
ISBN: 978-0-470-04401-8

'----------------------------------------------
In the HSL color system, colors are specified using three parameters: Hue, Saturation, and
Luminance. As with RGB colors, each of these parameters can range from 0 to 255. Each
RGB color has an equivalent HSL color, and each HSL color has an equivalent decimal
color value. In other words, any of the 16,777,216 colors can be specified by using any of
the three color systems: RGB, HSL, or decimal.
Although the Colors dialog box lets you specify a color using the HSL color model, this is
actually the only area in which Excel supports the HSL color model. For example, when
you specify a color using VBA, it must be decimal color value. You can, of course, use the
RGB function to return a decimal color value. However, VBA does not have a corresponding
HSL function.
'----------------------------------------------

Dans un module standard, on peut copier ceci pour les fins de test :

'---------------------------------------------------------------
Sub test()
'Extrait la valeur décimale de la propriété
'color du fond de la cellule
x = Range("A1").Interior.Color

'Utilise la fonction pour transformer au besoin
'La valeur décimale en ses composants
MsgBox Rouge_Vert_Bleu(x)
End Sub
'---------------------------------------------------------------
Function Rouge_Vert_Bleu1(ValDec) As Variant

'Retourne la valeur de chaque élément dans une cellule
'déterminé par la sélection de 3 cellules sur la même ligne
'et en utilisant la validation matricielle

Rouge_Vert_Bleu1 = Array(ValDec 256 ^ 0 And 255, _
ValDec 256 ^ 1 And 255, ValDec 256 ^ 2 And 255)
End Function
'---------------------------------------------------------------
Function Rouge_Vert_Bleu(ValDec) As Variant
'Utilisé dans l'exemple en VBA pour extraire les valeurs
'de chaque composant.
Dim R As Integer, V As Integer, B As Integer
R = ValDec 256 ^ 0 And 255
V = ValDec 256 ^ 1 And 255
B = ValDec 256 ^ 2 And 255
Rouge_Vert_Bleu = "Rouge = " & vbTab & R & vbCrLf & _
"Vert = " & vbTab & V & vbCrLf & _
"Bleu = " & vbTab & B
End Function
'---------------------------------------------------------------
Avatar
Modeste
Bonsour® MichDenis avec ferveur ;o))) vous nous disiez :

However, VBA does not have a corresponding HSL function.
:-(((


Toi non plus , tu n'as pas EXCEL 2007 ???

qui saurait vérifier si cette fonction n'existe pas dans Excel 2007 ???

@+
;o)))

Avatar
MichDenis
HSL function n'est utilisé que dans l'interface de la feuille
de calcul dans la fenêtre servant à définir la couleur -> l'équivalent
dans Excel 2003 serait la fenêtre Outils / options / onglets couleurs /
modifier / Personnaliser ....

Même si excel 2007 était installé, je ne vois pas quelle fonction je pourrais tester!




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

Bonsour® MichDenis avec ferveur ;o))) vous nous disiez :

However, VBA does not have a corresponding HSL function.
:-(((


Toi non plus , tu n'as pas EXCEL 2007 ???

qui saurait vérifier si cette fonction n'existe pas dans Excel 2007 ???

@+
;o)))

Avatar
Misange
Ben voilà ce que c'est que d'avoir fait l'économie de la dernière bible
du grand gourou... Heureusement que tu l'as ;-)
Merci de ces explications fort détaillées. La bonne nouvelle c'est
qu'enfin excel gère les couleurs d'une manière compréhensible.

Il y a un truc vraiment agréable dans office 2007 c'est la possiblité
d'avoir des palettes personnalisées qu'on retrouve dans toutes les
applis. Ca permet de garder un homogénéité sympa et le fait de pouvoir
définir en RVB une couleur "bien à soi" permet même, O grand luxe, de
retrouver ces couleurs entre les applis Adobe et Microsoft.

Bon je sens que je vais prochainement ouvrir la rubrique excel 2007 sur
excelabo pour tracer tout ça. (j'ai déjà commencé à le faire en vrai
mais faut un peu de temps et j'en ai peu en ce moment !)

Merci Denis

Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

Émanant d'un auteur bien connu "John Walkenbach"
tiré de son bouquin :
"Excel® 2007 Power Programming with VBA"
Published by Wiley Publishing, Inc.
Library of Congress Control Number: 2006939606
ISBN: 978-0-470-04401-8

'----------------------------------------------
In the HSL color system, colors are specified using three parameters: Hue, Saturation, and
Luminance. As with RGB colors, each of these parameters can range from 0 to 255. Each
RGB color has an equivalent HSL color, and each HSL color has an equivalent decimal
color value. In other words, any of the 16,777,216 colors can be specified by using any of
the three color systems: RGB, HSL, or decimal.
Although the Colors dialog box lets you specify a color using the HSL color model, this is
actually the only area in which Excel supports the HSL color model. For example, when
you specify a color using VBA, it must be decimal color value. You can, of course, use the
RGB function to return a decimal color value. However, VBA does not have a corresponding
HSL function.
'----------------------------------------------

Dans un module standard, on peut copier ceci pour les fins de test :

'---------------------------------------------------------------
Sub test()
'Extrait la valeur décimale de la propriété
'color du fond de la cellule
x = Range("A1").Interior.Color

'Utilise la fonction pour transformer au besoin
'La valeur décimale en ses composants
MsgBox Rouge_Vert_Bleu(x)
End Sub
'---------------------------------------------------------------
Function Rouge_Vert_Bleu1(ValDec) As Variant

'Retourne la valeur de chaque élément dans une cellule
'déterminé par la sélection de 3 cellules sur la même ligne
'et en utilisant la validation matricielle

Rouge_Vert_Bleu1 = Array(ValDec 256 ^ 0 And 255, _
ValDec 256 ^ 1 And 255, ValDec 256 ^ 2 And 255)
End Function
'---------------------------------------------------------------
Function Rouge_Vert_Bleu(ValDec) As Variant
'Utilisé dans l'exemple en VBA pour extraire les valeurs
'de chaque composant.
Dim R As Integer, V As Integer, B As Integer
R = ValDec 256 ^ 0 And 255
V = ValDec 256 ^ 1 And 255
B = ValDec 256 ^ 2 And 255
Rouge_Vert_Bleu = "Rouge = " & vbTab & R & vbCrLf & _
"Vert = " & vbTab & V & vbCrLf & _
"Bleu = " & vbTab & B
End Function
'---------------------------------------------------------------




Avatar
Misange
Bon sang mais c'est bien sur, j'avais vraiment lu trop vite !
j'archive j'archive (qu'est ce que j'ai comme archives en retard...)
Merci jacques !
Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

Au lieu de prendre la propriété ColorIndex, il faut prendre Color.

F1 sur Color pour en savoir +

JB
On 5 sep, 23:06, Misange wrote:
Bonsoir Jacques
Jolie ruse ;-)
mais ça ne répond pas complètement à la question qui est en fait de
récupérer le color index...
Où se trouve codée la différence entre les tons d'un même dégradé ?

Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !http://xlwiki.free.fr/wikihttp://www.excelabo.net




Bonsoir Misange,
Function CompteCouleur(champ As Range, couleurTémoin As Range)
Application.Volatile
Dim c, temp
temp = 0
For Each c In champ
If c.Interior.Color = couleurTémoin.Interior.Color Then
temp = temp + 1
End If
Next c
CompteCouleur = temp
End Function
Dans le tableur: =CompteCouleur(B3:B19;F2)
http://cjoint.com/?jfv5inr8fp
JB
On 5 sep, 16:53, Misange wrote:
hello,
Les couleurs dans xl2007 c'est très sympa. Par défaut, à partir d'un jeu
de couleurs, excel nous propose toute une gamme de dégradés du plus bel
effet, très classe tout ça, beaucoup plus joli que les 56 couleurs
flashy de base (même si on peut les modifier) dans les versions
antérieures. Oui mais il y a un mais :
je veux compter le nombre de cellules d'une couleur donnée ce qui
implique de connaitre son color.index et là ça se corse : le même color
index est utilisé pour deux tons proches mais tout de même différents.
par exemple brun tanné arrière plan 2, plus sombre 10% et brun tanné
arrière plan 2, plus sombre 25% renvoient tous deux 15 alors que brun
tanné arrière plan 2, plus sombre 50% renvoie 18 et brun tanné arrière
plan 2, plus sombre 75% rnvoie 56...
est ce que
1) quelqu'un peut vérifier
2) vous avez une idée sur la façon (autre qu'en passant par une MEFC sur
laquelle je finirai peut être bien quand même par me rabattre) de
compter mes jolies cases ?
merci :-)
Si c'est pas une question pour Modeste... C'est qu'il n'a peut être pas
xl2007 !
--
Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !http://xlwiki.free.fr/wikihttp://www.excelabo.net- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -










Avatar
Modeste
Bonsour® MichDenis avec ferveur ;o))) vous nous disiez :

HSL function n'est utilisé que dans l'interface de la feuille
de calcul dans la fenêtre servant à définir la couleur -> l'équivalent
dans Excel 2003 serait la fenêtre Outils / options / onglets couleurs


;o)))
c'est que justement cet algorithme HSL étant donc implanté dans Excel depuis au
moins EXCEL 2000,
je me posais la question : peut-etre dans EXCEL 2007 cette fonction (HSL) aurait
pu etre disponible ...
On peut réver non ???
;o)))

par ailleurs j'avais essayer d'implanter ces codes :
http://www.easyrgb.com/math.php?MATH=M18#text18
http://www.easyrgb.com/math.php?MATH=M19#text19

mais j'avais abandonner, confronté à des typages de variables que je n'avais pas
su résoudre :
HH, SS,LL sont censés etre les contenus de cellules contenant une valeur
décimale comprise entre 0 et 1
le déboggeur m'indique une valeur entiere ????

../..
Function HSL_RGB(ByRef HH As Long, ByRef SS As Long, ByRef LL As Long) As Long
Dim var_1 As Long, var_2 As Long
Dim R As Integer, G As Integer, B As Integer
If SS = 0 Then '//HSL values = 0 ÷ 1
'{
R = LL * 255 ' //RGB results = 0 ÷ 255
../..




@+
;o)))

Avatar
MichDenis
Sur ce CD accompagnant le livre cité plutôt, il y a ceci :
dans ce fichier : "color conversion functions.xlsm"

Il y a les fonctions suivantes :
DECIMAL2RGB, DECIMAL2HSL, HSL2RGB,
RGB2DECIMAL, RGB2HSL, et HSL2DECIMAL.

(je ne sais pas si ces dernières répondes directement à ta question !)
je n'y ai pas accès ... et d'ailleurs pas question pour moi de publier
des "pans" complets du livre ou du CD sans autorisation.)

Demande à Misange, peut-elle pourra-t-elle obtenir l'autorisation
de M. Walkenbach pour publier sur son site les dites fonctions sur
son site.



"Modeste" a écrit dans le message de news:
%
Bonsour® MichDenis avec ferveur ;o))) vous nous disiez :

HSL function n'est utilisé que dans l'interface de la feuille
de calcul dans la fenêtre servant à définir la couleur -> l'équivalent
dans Excel 2003 serait la fenêtre Outils / options / onglets couleurs


;o)))
c'est que justement cet algorithme HSL étant donc implanté dans Excel depuis au
moins EXCEL 2000,
je me posais la question : peut-etre dans EXCEL 2007 cette fonction (HSL) aurait
pu etre disponible ...
On peut réver non ???
;o)))

par ailleurs j'avais essayer d'implanter ces codes :
http://www.easyrgb.com/math.php?MATH=M18#text18
http://www.easyrgb.com/math.php?MATH=M19#text19

mais j'avais abandonner, confronté à des typages de variables que je n'avais pas
su résoudre :
HH, SS,LL sont censés etre les contenus de cellules contenant une valeur
décimale comprise entre 0 et 1
le déboggeur m'indique une valeur entiere ????

../..
Function HSL_RGB(ByRef HH As Long, ByRef SS As Long, ByRef LL As Long) As Long
Dim var_1 As Long, var_2 As Long
Dim R As Integer, G As Integer, B As Integer
If SS = 0 Then '//HSL values = 0 ÷ 1
'{
R = LL * 255 ' //RGB results = 0 ÷ 255
../..




@+
;o)))

Avatar
MichDenis
Dans le bas de la page à cette adresse :
http://www.xtremevbtalk.com/showthread.php?t7122

here are two functions to convert RGB>HSL and HSL>RGB:

Dis modeste, à qui je facture mes honoraires ?
;-))
Avatar
MichDenis
Il y a aussi ceci :

http://www.mathworks.com/matlabcentral/files/3655/rgb2hsl.m

Lorsque tu auras tout compris, crée nous un fichier
exemple sous excel 2003....c'est la moindre des choses !!!



"Modeste" a écrit dans le message de news:
%
Bonsour® MichDenis avec ferveur ;o))) vous nous disiez :

HSL function n'est utilisé que dans l'interface de la feuille
de calcul dans la fenêtre servant à définir la couleur -> l'équivalent
dans Excel 2003 serait la fenêtre Outils / options / onglets couleurs


;o)))
c'est que justement cet algorithme HSL étant donc implanté dans Excel depuis au
moins EXCEL 2000,
je me posais la question : peut-etre dans EXCEL 2007 cette fonction (HSL) aurait
pu etre disponible ...
On peut réver non ???
;o)))

par ailleurs j'avais essayer d'implanter ces codes :
http://www.easyrgb.com/math.php?MATH=M18#text18
http://www.easyrgb.com/math.php?MATH=M19#text19

mais j'avais abandonner, confronté à des typages de variables que je n'avais pas
su résoudre :
HH, SS,LL sont censés etre les contenus de cellules contenant une valeur
décimale comprise entre 0 et 1
le déboggeur m'indique une valeur entiere ????

../..
Function HSL_RGB(ByRef HH As Long, ByRef SS As Long, ByRef LL As Long) As Long
Dim var_1 As Long, var_2 As Long
Dim R As Integer, G As Integer, B As Integer
If SS = 0 Then '//HSL values = 0 ÷ 1
'{
R = LL * 255 ' //RGB results = 0 ÷ 255
../..




@+
;o)))

Avatar
Daniel.j
Bonjour
Avec cette macro çà devrait marcher?
Compte les cellules de meme couleur que la reference(G1)

Sub TestRGB()
Dim CouleurRGB As Long
Dim Blue, Green, Red As Integer
'cellule de reference
CouleurRGB = Range("G1").Interior.Color
Red = Int(CouleurRGB Mod 256)
Green = Int((CouleurRGB Mod 65536) / 256)
Blue = Int(CouleurRGB / 65536)
CoulOK = 0
For Each cellule In Range("A1:A10")
If cellule.Interior.Color = RGB((Red), (Green), (Blue)) Then
CoulOK = CoulOK + 1
End If
Next
MsgBox CoulOK
End Sub
Daniel

"Misange" a écrit dans le message de news:
%
hello,
Les couleurs dans xl2007 c'est très sympa. Par défaut, à partir d'un jeu
de couleurs, excel nous propose toute une gamme de dégradés du plus bel
effet, très classe tout ça, beaucoup plus joli que les 56 couleurs flashy
de base (même si on peut les modifier) dans les versions antérieures. Oui
mais il y a un mais :
je veux compter le nombre de cellules d'une couleur donnée ce qui implique
de connaitre son color.index et là ça se corse : le même color index est
utilisé pour deux tons proches mais tout de même différents.
par exemple brun tanné arrière plan 2, plus sombre 10% et brun tanné
arrière plan 2, plus sombre 25% renvoient tous deux 15 alors que brun
tanné arrière plan 2, plus sombre 50% renvoie 18 et brun tanné arrière
plan 2, plus sombre 75% rnvoie 56...
est ce que
1) quelqu'un peut vérifier
2) vous avez une idée sur la façon (autre qu'en passant par une MEFC sur
laquelle je finirai peut être bien quand même par me rabattre) de compter
mes jolies cases ?
merci :-)

Si c'est pas une question pour Modeste... C'est qu'il n'a peut être pas
xl2007 !


--
Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net


1 2 3