Mise en forme conditionnelle très particulière
Résolu
Cannonride
-
Cannonride -
Cannonride -
Bonjour,
Dans le cadre de mon travail, je dois standardiser des RAL (couleurs "normalisées") utilisées dans l'entreprise.
Pour se faire, je dois créer un fichier Excel avec la couleur de tous les RAL et trouver une manière de les standardiser.
Ayant libre choix, j'ai choisis de les référencer en fonction des valeurs décimales provenant d'un octet binaire. (le ^ signifie que le nombre d'après est un exposant : type 2²)
2^0
2^1
2^2
2^3
2^4
2^5
2^6
2^7
Les valeurs décimales vont donc de 0 à 255
Par exemple le RAL 1000 qui est un beige vert, a pour taux de couleurs primaire
190 en rouge (cellule D3)
189 en vert (cellule F3)
127 en bleue (cellule G3)
sur la ligne 3, il y a en B3 le nom du RAL, E3 une "fonction gauche" masquée, en H3, le code hexadécimal du RAL masqué lui aussi. et de J3 à L3 c'est les noms du RAL 1000 dans différentes langues.
Toutes les lignes ont les informations pour un sel RAL
Ce que je veux :
Trouver une mise en forme conditionnelle ou autre fonction qui pourrai me permettre de colorer la ligne complète (3, 4, 5, 6, etc...) en fonction des valeurs définies dans D3, 4, 5, 6, etc.. F3, 4, 5, 6, etc... et G3, 4, 5, 6, etc...
C'est à dire que l'on peut paramétrer manuellement les couleurs dans Excel en indiquant les taux de RGB (Red Green Blue) pour créer une couleur.
Je souhaite que la mise en forme colore le fond de ma ligne en prenant les valeurs dans ces 3 cellules. Et vu que chaque ligne a des valeurs différentes dans ces 3 cellules, le RAL change automatiquement.
Mais je ne sais pas comment régler automatiquement la mise en forme pour qu'elle se colore en fonction du contenu de cellules.
Seriez vous disposés à m'aider ?
Bien cordialement.
Antoine RM
Microsoft Office 2010
Lien pour accéder au fichier https://www.cjoint.com/c/EDutbK1XhEz
Dans le cadre de mon travail, je dois standardiser des RAL (couleurs "normalisées") utilisées dans l'entreprise.
Pour se faire, je dois créer un fichier Excel avec la couleur de tous les RAL et trouver une manière de les standardiser.
Ayant libre choix, j'ai choisis de les référencer en fonction des valeurs décimales provenant d'un octet binaire. (le ^ signifie que le nombre d'après est un exposant : type 2²)
2^0
2^1
2^2
2^3
2^4
2^5
2^6
2^7
Les valeurs décimales vont donc de 0 à 255
Par exemple le RAL 1000 qui est un beige vert, a pour taux de couleurs primaire
190 en rouge (cellule D3)
189 en vert (cellule F3)
127 en bleue (cellule G3)
sur la ligne 3, il y a en B3 le nom du RAL, E3 une "fonction gauche" masquée, en H3, le code hexadécimal du RAL masqué lui aussi. et de J3 à L3 c'est les noms du RAL 1000 dans différentes langues.
Toutes les lignes ont les informations pour un sel RAL
Ce que je veux :
Trouver une mise en forme conditionnelle ou autre fonction qui pourrai me permettre de colorer la ligne complète (3, 4, 5, 6, etc...) en fonction des valeurs définies dans D3, 4, 5, 6, etc.. F3, 4, 5, 6, etc... et G3, 4, 5, 6, etc...
C'est à dire que l'on peut paramétrer manuellement les couleurs dans Excel en indiquant les taux de RGB (Red Green Blue) pour créer une couleur.
Je souhaite que la mise en forme colore le fond de ma ligne en prenant les valeurs dans ces 3 cellules. Et vu que chaque ligne a des valeurs différentes dans ces 3 cellules, le RAL change automatiquement.
Mais je ne sais pas comment régler automatiquement la mise en forme pour qu'elle se colore en fonction du contenu de cellules.
Seriez vous disposés à m'aider ?
Bien cordialement.
Antoine RM
Microsoft Office 2010
Lien pour accéder au fichier https://www.cjoint.com/c/EDutbK1XhEz
A voir également:
- Mise en forme conditionnelle très particulière
- Mise en forme conditionnelle excel - Guide
- Mise a jour chrome - Accueil - Applications & Logiciels
- Mise en forme tableau croisé dynamique - Guide
- Mise a jour windows 10 - Accueil - Mise à jour
- Excel liste déroulante conditionnelle - Guide
2 réponses
Bonjour,
Cela ne peut se faire que par macro VBA, et dans ce cas la mise en forme conditionnelle n'est pas utile, il suffit de colorer directement la ligne.
Mets ton fichier sur https://www.cjoint.com/
et reviens poster le lien
Cela ne peut se faire que par macro VBA, et dans ce cas la mise en forme conditionnelle n'est pas utile, il suffit de colorer directement la ligne.
Mets ton fichier sur https://www.cjoint.com/
et reviens poster le lien
Bonjour,
Vu qu'il s'agit de colorer une seule fois les cellules, il n'est utile de créer un fichier avec macro (xlsm).
Copies la macro ci-dessous dans le module de feuille (clic droit sur l'onglet / visualiser le code) exécutes-la, puis effaces-la et enregistre en xlsx
Vu qu'il s'agit de colorer une seule fois les cellules, il n'est utile de créer un fichier avec macro (xlsm).
Copies la macro ci-dessous dans le module de feuille (clic droit sur l'onglet / visualiser le code) exécutes-la, puis effaces-la et enregistre en xlsx
Option Explicit Sub couleur() Dim p As Range 'plage Dim c As Range 'cellule Dim r As Byte 'rouge Dim v As Byte 'vert Dim b As Byte 'bleu Set p = Worksheets("Feuil1").Range("D3:D215") For Each c In p.Cells r = Val(c.Value) v = Val(c.Offset(0, 2).Value) b = Val(c.Offset(0, 3).Value) c.Offset(0, -2).Resize(1, 14).Interior.Color = RGB(r, v, b) Next c End Sub
C'est tout simplement Gé-NIAL !!
Merci, vraiment, merci beaucoup Patrice !! :)
Je vais analyser la maccro, ça m'intéresse le VBA.
Je vois que tu déclare tes variables au début.
Ensuite tu paramètre la plage, puis les celulles.
"v = Val(c.Offset(0, 2).Value)"
"b = Val(c.Offset(0, 3).Value)"
Les offset c'est pour décaler de 2 et 3 colonnes ?
Le début de la dernière ligne est flou pour moi par contre.
C'est tip top ! Tu m'as fait gagné un temps fou !
Merci, vraiment, merci beaucoup Patrice !! :)
Je vais analyser la maccro, ça m'intéresse le VBA.
Je vois que tu déclare tes variables au début.
Ensuite tu paramètre la plage, puis les celulles.
"v = Val(c.Offset(0, 2).Value)"
"b = Val(c.Offset(0, 3).Value)"
Les offset c'est pour décaler de 2 et 3 colonnes ?
Le début de la dernière ligne est flou pour moi par contre.
C'est tip top ! Tu m'as fait gagné un temps fou !
Quelques explications :
-
-
Rappel : cette valeur est une chaine.
- la fonction Val() permet de convertir cette valeur en nombre.
Pour la ligne :
-
Avec
de la couleur de fond
de la plage comprenant 1 ligne et 14 colonnes
commence dans la cellule située à 2 colonnes à gauche
Si tu te lances dans le VBA un excellent cours ici :
https://bidou.developpez.com/article/VBA/
Cordialement
Patrice
-
For Each c In p.Cells= pour chaque cellule de la plage p (c-à-d. D3:D215)
-
c.Offset(0, 2).Valuedonne la valeur de la cellule située en décalant c de 0 lignes et 2 colonnes.
Rappel : cette valeur est une chaine.
- la fonction Val() permet de convertir cette valeur en nombre.
Pour la ligne :
-
c.Offset(0, -2).Resize(1, 14).Interior.Color = RGB(r, v, b)
Avec
= RGB(r, v, b)on défini la value RVB
de la couleur de fond
.interior.color
de la plage comprenant 1 ligne et 14 colonnes
.Resize(1, 14)qui
commence dans la cellule située à 2 colonnes à gauche
.Offset(0, -2)de la cellule en D
Si tu te lances dans le VBA un excellent cours ici :
https://bidou.developpez.com/article/VBA/
Cordialement
Patrice
Je viens de le faire, j'ai modifié mon premier message avec le lien en bas de page.
J'ai coloré manuellement les 2 premières lignes pour donner l'exemple.