Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Déterminer l'intensité d'une couleur

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Magic_Doctor

XLDnaute Barbatruc
Bonjour à tous,

Je change la couleur d'une cellule dans laquelle il y a un chiffre.
Supposons que la couleur de la cellule soit bleu ciel et la couleur du chiffre noire. Jusque là tout va vien, le noir du chiffre se détache bien du fond.
Maintenant je décide que la couleur de la cellule soit bleu marine. Maintenant on ne verra quasiment plus le chiffre.
Peut-on déterminer l'intensité d'une couleur et ainsi, à partir d'une certaine intensité de la couleur de la cellule, spécifier que la couleur du chiffre soit, par exemple, blanche afin que le chiffre soit toujours visible ?

Merci pour tout conseil.
 
Re : Déterminer l'intensité d'une couleur

Bonjour Magic_Doctor,

C'est là qu'on voit qu'ils on un peu plus peaufiné la présentation sur Word que sur Excel
Sur Word, si tu mets un texte en couleur Automatique, avec un fond de couleur très sombre le texte s'écrit automatiquement en blanc
Sur Excel, on dirait qu'ils ont oublié de le faire...Comme quoi les équipes Microsoft ne se parlent toujours pas beaucoup 😉
 
Re : Déterminer l'intensité d'une couleur

Bonjour à tous,

Un essai par MFC
Marche bien sur 2007, mais Attention, me fait planter Excel 2003

Edit : Calcul de la luminosité piqué là : vbAccelerator - Hue Luminance and Saturation (HLS) Model and Manipulating Colours
 

Pièces jointes

Re : Déterminer l'intensité d'une couleur

Re,

Pas dans un USF mais sur la feuille.
job75 m'avait concocté une procédure permettant de changer instantanément la couleur de fond d'une feuille sans pour autant altérer les tableaux s'y trouvant. Il se trouve que pour des raisons, disons, ergonomiques j'ai choisi de faire apparaître, suivant les cas, un "Label" dans lequel il y a un chiffre.
Si d'aventure je décide de choisir une couleur obscure pour le fond de la feuille, bien évidemment le "Label" va prendre cette couleur, mais comme son texte est noir, on ne voit plus grand chose.
Voici la procédure :
 
Dernière édition:
Re : Déterminer l'intensité d'une couleur

Re,

Si tu rajoutes les fonctions dec2rvb et luminosite de mon dernier classeur dans ton code, je pense que ça devrait donner ça

Code:
'Mise en forme du "Label1"
If Sheets(NumFeuille).Name = "Relookage" Then
    coul = [CouleurFond].Interior.Color
    ActiveSheet.Label1.BackColor = coul
if luminosite(coul)<128 then ActiveSheet.Label1.ForeColor = &HFFFFFF
End If

Pas super avec le jaune, ma fonction
Il y a surement mieux pour calculer la luminosité
 
Re : Déterminer l'intensité d'une couleur

Re,

Merci tototiti2008 ça marche tès bien.
En ce qui concerne le jaune tu as tout à fait raison et le seul moyen d'y palier n'est pas forcément de peaufiner ta fonction qui marche très bien (du moins à partir d'Excel 2007) mais de stipuler que lorsque la couleur est dans un ton jaune, quelle que soit alors son intensité la couleur des caractères devra rester noire.
J'ai fait une légère modification afin que la couleur du chiffre dans le "Label" ne soit pas définitivement blanche :
If Sheets(NumFeuille).Name = "Relookage" Then
coul = [CouleurFond].Interior.Color
With ActiveSheet.Label1
.BackColor = coul
.ForeColor = IIf(Luminosite(coul) < 128, &HFFFFFF, &H0)
End With
End If

A+
 
Re : Déterminer l'intensité d'une couleur

Bonsoir
C'est un problème que je gère complètement dans cette petite application, non pas pour un label mais pour userform tout entier !
Il est vrai qu'elle est équipée d'un solide module de calcul de couleurs, mais qui est tout à fait utilisable en VBA si ça vous intéresse.
À +
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…