Connaître le code couleur d’une cellule dans Excel
Retrouve la couleur exacte d’une cellule pour la reprendre ailleurs, ou pour comprendre pourquoi deux jaunes presque identiques ne se comptent pas ensemble.
Aucune fonction d’Excel ne renvoie la couleur de fond d’une cellule, si bien que pour une cellule isolée, tu lis son code RVB dans la fenêtre Couleurs. Quant à LIRE.CELLULE, la méthode des tutoriels, elle dépend d’anciennes macros qu’il faut d’abord activer. Pour relever le code exact de toute une colonne, notre fonction VBA CODE_COULEUR l’écrit dans la feuille.
Comment récupérer le code couleur d’une cellule sans macro
Sans macro, tu récupères le code couleur d’une cellule par deux chemins, la fenêtre Couleurs et l’éditeur VBA. La première l’affiche en rouge, vert et bleu, le second l’écrit en une ligne, et aucun des deux n’ajoute quoi que ce soit au classeur. C’est tout ce qu’il faut pour retrouver la teinte d’une cellule et la reprendre ailleurs. Comme ils ne lisent que la cellule sélectionnée, ils deviennent en revanche fastidieux dès qu’il faut relever toute une colonne.
La plupart des tutoriels citent une troisième voie, LIRE.CELLULE, qui fait entrer un code dans la feuille, cellule par cellule. Elle repose toutefois sur les anciennes macros Excel 4.0, que Microsoft 365 désactive par défaut, et elle ne rend qu’un numéro de palette au lieu du code exact.
L’exemple de la page est un onglet Suivi, où quelqu’un a surligné à la main la plupart des commandes, de CMD-1043 à CMD-1115, selon leur état et sans légende. Deux d’entre elles, CMD-1043 et CMD-1102, portent des jaunes que l’œil ne sépare pas, l’un pris dans la ligne Couleurs standard, l’autre dans Autres couleurs.
Trouver le code RVB d’une cellule dans la fenêtre Couleurs
Le code RVB d’une cellule se lit dans la fenêtre Couleurs, ouverte pendant que cette cellule est sélectionnée. Son onglet Personnalisées affiche alors les trois composantes de sa couleur, et même son code hexadécimal. Cette fenêtre sert d’abord à choisir une teinte, mais rien ne t’oblige à en changer. Une fois le code lu, tu la refermes par Annuler, et la cellule garde sa couleur.
- 01
Sélectionne la cellule dont tu veux connaître la couleur, CMD-1043 dans l’exemple.
- 02
Dans l’onglet Accueil, ouvre la flèche du bouton Couleur de remplissage, clique sur Autres couleurs, puis, dans la fenêtre Couleurs qui s’ouvre, sur l’onglet Personnalisées.

La fenêtre Couleurs ouverte sur une cellule jaune, avec 255, 255 et 0 dans les champs Rouge, Vert et Bleu, et #FFFF00 dans le champ Hex. - 03
Vérifie que la liste Palette de couleurs affiche RVB, puis lis les champs Rouge, Vert et Bleu, soit 255, 255 et 0 pour le jaune de l’exemple. Dans Microsoft 365, le champ Hex affiche en plus le code hexadécimal, #FFFF00 pour ce jaune.
- 04
Clique sur Annuler pour refermer la fenêtre sans toucher à la couleur de la cellule.
Cette fenêtre a pourtant une limite, puisqu’elle ne lit qu’une cellule à la fois et n’écrit rien dans la feuille. Sur une colonne entière, il faut donc refaire ces gestes pour chaque couleur à relever, ce qui devient vite long, et c’est là que CODE_COULEUR prend le relais.
Demander le code couleur à l’éditeur VBA avec Interior.Color
L’éditeur VBA te donne le code couleur de la cellule active en une ligne, tapée dans sa fenêtre Exécution, sans module à créer ni macro à enregistrer dans le classeur. Tu lui demandes la propriété Interior.Color de cette cellule, et il affiche aussitôt son code exact, le nombre même que renvoie CODE_COULEUR.
- 01
Sélectionne la cellule, puis appuie sur Alt+F11 pour ouvrir l’éditeur VBA.
- 02
Appuie sur Ctrl+G pour afficher la fenêtre Exécution, en bas de l’éditeur.
- 03
Tape la ligne ci-dessous, puis appuie sur Entrée.
?ActiveCell.Interior.Color
La même fenêtre répond à ?ActiveCell.Interior.ColorIndex par le numéro de palette de la cellule, de 1 à 56, soit 6 pour ce jaune. Cette seconde question sert quand la première ne suffit pas, puisqu’une cellule sans remplissage y répond 16 777 215, exactement comme une cellule blanche. ColorIndex, lui, les sépare, en répondant -4142 sans remplissage et 2 sur le blanc.
Lire la couleur d’une cellule avec LIRE.CELLULE et un nom défini
Pour lire la couleur d’une cellule avec LIRE.CELLULE, il faut passer par un nom défini, parce que cette fonction des anciennes macros d’Excel 4.0 ne s’écrit pas dans une cellule. La méthode des tutoriels crée donc un nom, CouleurFond par exemple, pendant que la cellule B2 est sélectionnée, pour qu’il lise la cellule de gauche. Écrit ensuite en face de chaque commande, de B2 à B8, =CouleurFond renvoie le numéro de palette de sa couleur et remplit la colonne d’aide.
C’est là que la méthode se complique, car Microsoft 365 désactive ces macros par défaut. D’après l’aide de Microsoft, elles ne s’exécutent que si l’option qui les active avec les macros VBA est cochée. La même aide place cette option dans les paramètres des macros du Centre de gestion de la confidentialité. Tant qu’elle reste décochée, Excel pour Microsoft 365 peut refuser le nom dès que LIRE.CELLULE désigne une cellule. Si ton Excel l’accepte, voici la formule à écrire dans le nom.
=LIRE.CELLULE(63;Suivi!A2)À écrire dans la zone Fait référence à d’un nom défini, jamais dans une cellule, pendant que B2 est sélectionnée. D’après la référence des fonctions de macro Excel 4.0 de Microsoft, le code 63 renvoie la couleur de remplissage de la cellule, sous la forme de son numéro de palette, de 1 à 56, soit 6 pour le jaune standard et 0 pour une cellule sans remplissage.
Quant au code 38, cette référence le décrit comme la couleur de premier plan de la trame, et il renvoie le même numéro de palette sur un fond uni. Il donne ainsi 6 pour les deux jaunes de l’exemple et 0 pour la cellule sans remplissage. Dans les deux cas, la colonne d’aide reçoit un numéro de palette et non le code exact, si bien que la méthode confond des teintes voisines.
Le classeur doit enfin être enregistré au format « Classeur Excel (prenant en charge les macros) », faute de quoi Excel retire à l’enregistrement tout nom qui porte une fonction Excel 4.0. Si tu renonces à la méthode, le gestionnaire de noms (Ctrl+F3) permet de retrouver le nom et de le supprimer.
Afficher le code couleur de chaque cellule avec une fonction VBA
Pour afficher le code couleur de chaque cellule d’une colonne, colle notre fonction VBA CODE_COULEUR dans ton classeur, puis écris-la comme une formule et recopie-la vers le bas. Chaque ligne reçoit alors dans la colonne voisine le code exact de sa couleur de fond. Pour une cellule remplie, tu y retrouves le nombre qu’affichait l’éditeur VBA, inscrit cette fois dans la feuille.
Sur l’onglet Suivi, la formule =CODE_COULEUR(A2), écrite en B2 puis recopiée jusqu’en B8, renvoie 65 535 pour le jaune de CMD-1043. Elle laisse en revanche B8 vide, puisque CMD-1115 n’a pas de remplissage.
| A | B | |
|---|---|---|
| 1 | Commande | Code couleur |
| 2 | CMD-1043 | 65535 |
| 3 | CMD-1057 | 5287936 |
| 4 | CMD-1061 | 255 |
| 5 | CMD-1102 | 131071 |
| 6 | CMD-1108 | 49407 |
| 7 | CMD-1110 | 16777215 |
| 8 | CMD-1115 |
Installer la fonction qui renvoie le code couleur
Ouvre l’éditeur VBA (Alt+F11 sous Windows), insère un module neuf et colles-y tout le code de la fonction. Écris ensuite la formule dans une cellule, puis enregistre le classeur au format « Classeur Excel (prenant en charge les macros) ».
Écrire la formule du code couleur
=CODE_COULEUR(A2)Renvoie le code de la couleur de fond de A2, soit 65 535 pour le jaune standard.
Le résultat est un nombre, que SI et NB.SI comparent directement à un autre code.
Une cellule sans remplissage renvoie une valeur vide, alors qu’une cellule remplie de blanc renvoie 16 777 215, si bien que les deux ne se confondent pas.
Avec une plage de plusieurs cellules, la fonction renvoie le code de la première.
Une couleur posée par une mise en forme conditionnelle n’est pas lue, et la cellule renvoie le code de son vrai fond, une valeur vide le plus souvent.
Une couleur du thème, choisie dans la grille du haut du menu, renvoie le code de la teinte affichée, qui change si les couleurs du thème du classeur changent.
Un fond en dégradé renvoie 0, le code du noir, parce qu’un dégradé n’a pas de couleur de fond unique.
Après un changement de couleur, le code ne se met à jour qu’avec Ctrl+Alt+F9, ou quand une valeur est saisie dans la cellule, même identique à la précédente, alors que F9 ne suffit pas.
Comment se calcule le code couleur
Le code d’une couleur se calcule à partir de ses trois composantes, qui vont chacune de 0 à 255, et vaut rouge + 256 × vert + 65 536 × bleu. Cette façon de compter donne plus de 16 millions de teintes, et chacune reçoit son propre code.
Le jaune standard, fait de 255 de rouge, 255 de vert et 0 de bleu, vaut ainsi 255 + 65 280, soit 65 535. Tout en haut de l’échelle, le blanc, où les trois composantes sont au maximum, vaut 16 777 215. La feuille ci-dessous reprend les commandes de l’exemple, avec en B le code que renvoie la fonction. Les colonnes C et D le traduisent en RVB et en hexadécimal, avec les formules de la section suivante.
Le jaune de CMD-1102, choisi dans Autres couleurs, se confond à l’œil avec le jaune standard de CMD-1043, et le fond blanc de CMD-1110 avec la cellule sans remplissage de CMD-1115. Dans la colonne B, leurs codes les séparent sans ambiguïté, 131 071 contre 65 535 pour les jaunes, 16 777 215 contre une case vide pour les deux autres.
L’onglet Suivi, une fois les colonnes B, C et D calculées
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Commande | Code couleur | RVB | Hexadécimal |
| 2 | CMD-1043 | 65535 | 255, 255, 0 | #FFFF00 |
| 3 | CMD-1057 | 5287936 | 0, 176, 80 | #00B050 |
| 4 | CMD-1061 | 255 | 255, 0, 0 | #FF0000 |
| 5 | CMD-1102 | 131071 | 255, 255, 1 | #FFFF01 |
| 6 | CMD-1108 | 49407 | 255, 192, 0 | #FFC000 |
| 7 | CMD-1110 | 16777215 | 255, 255, 255 | #FFFFFF |
| 8 | CMD-1115 |
Convertir le code couleur en RVB ou en hexadécimal
Deux formules convertissent le code couleur de la colonne B en RVB ou en hexadécimal, ligne par ligne, là où la fenêtre Couleurs n’affiche ces valeurs que pour une cellule à la fois. Tu en as besoin dès que la couleur quitte Excel, puisqu’un logiciel de dessin, une charte graphique ou une page web la demandent sous l’une de ces deux formes. Le code, lui, tient en un seul nombre, fait pour comparer des cellules dans une formule.
Extraire le code RVB par une formule
La formule qui extrait le code RVB découpe le code couleur en trois morceaux, un par composante. Le code range en effet le rouge dans les unités, le vert dans les multiples de 256 et le bleu dans ceux de 65 536. MOD garde le reste de la division par 256, et ENT retire les décimales d’une division.
=SI(B2="";"";MOD(B2;256)&", "&MOD(ENT(B2/256);256)&", "&ENT(B2/65536))Renvoie 255, 255, 0 pour le jaune de B2, et une cellule vide en face de CMD-1115.
Le SI placé en tête laisse la cellule vide quand le code l’est, comme en face de CMD-1115. Sans lui, la formule renvoie #VALEUR! sur cette ligne, puisque CODE_COULEUR y renvoie un texte vide, sur lequel MOD ne sait pas calculer.
Écrire l’hexadécimal sans inverser le rouge et le bleu
Pour écrire l’hexadécimal dans le bon ordre, il faut convertir chaque composante à part, puis les recoller en commençant par le rouge. Le réflexe serait d’écrire =DECHEX(B2;6), mais cette formule renvoie 00FFFF pour le jaune, alors que son code hexadécimal est FFFF00. Excel range en effet le bleu en tête du nombre et le rouge en queue, à l’inverse de l’écriture #RRVVBB.
="#"&DECHEX(MOD(B2;256);2)&DECHEX(MOD(ENT(B2/256);256);2)&DECHEX(ENT(B2/65536);2)Renvoie #FFFF00 pour le jaune de B2, et #00B050 pour le vert de B3.
Le 2 de chaque DECHEX garde les zéros de tête, sans quoi le vert de CMD-1057 s’écrirait #0B050 au lieu de #00B050. Comme celle du RVB, la formule bute enfin sur le code vide de CMD-1115, et il suffit de l’entourer du même SI pour y laisser la cellule vide.
Pourquoi le numéro de couleur ColorIndex confond deux jaunes
Le numéro de couleur ColorIndex confond deux jaunes parce que c’est un numéro de palette, qui ne connaît que les 56 couleurs de l’ancienne palette d’Excel. Une couleur absente de cette palette y reçoit le numéro d’une couleur proche, que tu le lises par ColorIndex en VBA ou par LIRE.CELLULE. Le code exact, celui de CODE_COULEUR et d’Interior.Color, distingue au contraire plus de 16 millions de teintes, alors que beaucoup de tutoriels confondent les deux.
Dans l’exemple, le jaune standard de CMD-1043 et le jaune choisi dans Autres couleurs de CMD-1102 reçoivent ainsi tous deux le numéro 6, alors que leurs codes exacts, 65 535 et 131 071, les séparent. Les deux lectures du numéro ne s’accordent d’ailleurs pas toujours, puisque le vert standard de CMD-1057 reçoit 14 de ColorIndex et 10 de LIRE.CELLULE.
Pour compter ou additionner par couleur, c’est donc le code exact qu’il te faut. Le numéro de palette ne suffit que si les couleurs du classeur sont assez éloignées pour ne jamais tomber sur le même numéro.
Liste des codes couleur Excel pour les dix couleurs standard
La ligne Couleurs standard, en bas du menu Couleur de remplissage, propose dix teintes, et le tableau donne leurs codes couleur en les numérotant de gauche à droite. Pour chacune, il indique le code que renvoie CODE_COULEUR, son RVB, son hexadécimal, puis son numéro de palette selon ColorIndex et selon LIRE.CELLULE(63).
Les deux premières cases, #C00000 et #FF0000, y partagent le numéro 3 de ColorIndex, que LIRE.CELLULE sépare en 53 et 3. Les deux jaunes de l’exemple, eux, reçoivent le numéro 6 des deux lectures. Aucun numéro de palette ne remplace donc le code exact dès que deux teintes se ressemblent.
| Case | Code exact | RVB | Hexadécimal | ColorIndex | LIRE.CELLULE |
|---|---|---|---|---|---|
| 1 | 192 | 192, 0, 0 | #C00000 | 3 | 53 |
| 2 | 255 | 255, 0, 0 | #FF0000 | 3 | 3 |
| 3 | 49 407 | 255, 192, 0 | #FFC000 | 44 | 44 |
| 4 | 65 535 | 255, 255, 0 | #FFFF00 | 6 | 6 |
| 5 | 5 296 274 | 146, 208, 80 | #92D050 | 43 | 43 |
| 6 | 5 287 936 | 0, 176, 80 | #00B050 | 14 | 10 |
| 7 | 15 773 696 | 0, 176, 240 | #00B0F0 | 33 | 33 |
| 8 | 12 611 584 | 0, 112, 192 | #0070C0 | 23 | 23 |
| 9 | 6 299 648 | 0, 32, 96 | #002060 | 49 | 49 |
| 10 | 10 498 160 | 112, 48, 160 | #7030A0 | 47 | 29 |
Se servir du code couleur d’une cellule dans une formule
Pour te servir du code couleur dans une formule, appuie-toi sur la colonne remplie par CODE_COULEUR. SI, NB.SI ou SOMME.SI comparent en effet des valeurs, et un fond de cellule n’en est pas une. Cette colonne leur donne la valeur qui leur manquait, un nombre qu’elles comparent comme n’importe quel autre. Si le jaune marque dans ton classeur les commandes à relancer, la formule ci-dessous les signale en toutes lettres.
=SI(B2=65535;"À relancer";"")Écrite en E2 et recopiée vers le bas, affiche À relancer en face des commandes au jaune standard.
La formule laisse pourtant CMD-1102 de côté, parce que son jaune, choisi dans Autres couleurs, a le code 131 071, alors qu’il paraît identique à l’œil. Un test sur le code sépare donc des teintes que l’œil confond, là où un repérage à l’écran les aurait mélangées.
=NB.SI(B2:B8;65535)Compte les commandes au jaune standard, soit 1 dans l’exemple.
Pour additionner directement par couleur, sans colonne d’aide, la somme en fonction de la couleur fait le calcul en une seule formule. Elle compare les couleurs exactement comme CODE_COULEUR, si bien que les deux jaunes de l’exemple n’y sont pas confondus non plus.
Comment colorer une cellule en fonction de sa valeur
Pour colorer une cellule en fonction de sa valeur, passe par la mise en forme conditionnelle, qui ne demande aucune macro. Dans l’onglet Accueil, le menu Mise en forme conditionnelle propose ainsi des Règles de mise en surbrillance des cellules, qui colorent par exemple les cellules supérieures à une valeur ou celles qui contiennent un texte. Beaucoup de recherches sur le code couleur visent en fait ce sens-là, où la valeur décide de la couleur, et non l’inverse.
Une couleur posée ainsi n’est pas le fond de la cellule, et CODE_COULEUR, qui ne lit que ce fond, ne la voit pas. Une cellule que la règle colore en jaune renvoie donc une valeur vide si elle n’a pas de remplissage à elle. Pour t’en servir dans une formule, le plus sûr reste de reprendre la condition de la règle.
Quand le code couleur paraît faux ou ne s’affiche pas
Si le code ne change pas après un changement de couleur, c’est que changer une couleur ne modifie aucune valeur, si bien qu’Excel ne relance aucun calcul, pas même avec F9. Ctrl+Alt+F9 recalcule toutes les formules des classeurs ouverts, et le code se met aussi à jour dès qu’une valeur est saisie dans la cellule, même identique à la précédente.
Quand #NOM? s’affiche, les macros sont peut-être désactivées (activer les macros sur Excel explique comment les autoriser), ou le classeur a été enregistré en « Classeur Excel », le format sans macros, qui supprime le code.
Si #NOM? persiste alors que les macros sont actives, le code a sans doute été collé dans le module d’une feuille ou dans ThisWorkbook, où Excel ne trouve pas la fonction. Colle-le plutôt dans un module neuf, par le menu Insertion puis Module.
Quand la cellule du code reste vide alors que la commande paraît colorée, la couleur vient sans doute d’une mise en forme conditionnelle, que la fonction ne lit pas.
Une cellule blanche et une cellule sans remplissage ne renvoient pas la même chose, et c’est voulu. La première renvoie 16 777 215 et la seconde une valeur vide, alors que l’écran les montre pareilles.
Le code d’une couleur peut changer sans que personne n’y touche, quand elle a été choisie dans la grille du thème. Une telle couleur suit les couleurs du thème du classeur, et son code change avec elles après Ctrl+Alt+F9, alors qu’une couleur standard garde le sien.
Deux jaunes identiques à l’œil qui n’ont pas le même code viennent sans doute, l’un de la ligne Couleurs standard, l’autre d’Autres couleurs, et c’est le code, pas l’écran, qui dit vrai.
D’autres fonctions et macros utiles
Faire une somme en fonction de la couleur
Additionne les cellules surlignées d’une même couleur, avec ou sans macro, par un filtre ou par une fonction gratuite à coller une fois dans ton classeur.
Compter les cellules d’une couleur de fond
Compte les cellules surlignées d’une même couleur, avec ou sans macro, par un filtre, par la recherche d’Excel ou par une fonction gratuite à coller une fois dans ton classeur.
Tu as peut-être encore une question
Pour connaître le code couleur d’une cellule, sélectionne-la, ouvre la flèche de Couleur de remplissage, clique sur Autres couleurs et lis les champs Rouge, Vert et Bleu de l’onglet Personnalisées, ou colle la fonction gratuite CODE_COULEUR, qui écrit le code exact de chaque cellule dans la colonne voisine, 65 535 pour le jaune standard.
Le code RVB d’une cellule se lit dans la fenêtre Couleurs, et son hexadécimal dans le champ Hex de Microsoft 365, mais pour toute une colonne, deux formules convertissent le code de CODE_COULEUR, l’une avec MOD et ENT pour le RVB, l’autre avec DECHEX composante par composante pour l’hexadécimal, sans quoi le rouge et le bleu s’inversent.
Une formule SI ne peut pas tester une couleur directement, puisqu’elle compare des valeurs, mais une colonne d’aide remplie par =CODE_COULEUR(A2) lui donne un nombre à tester, si bien que =SI(B2=65535;"À relancer";"") affiche un message en face de chaque cellule au jaune standard et laisse de côté un jaune seulement voisin.
Le code couleur ne change pas seul, parce que changer la couleur d’une cellule ne modifie aucune valeur et ne relance donc aucun calcul, pas même avec F9, si bien qu’il faut appuyer sur Ctrl+Alt+F9 pour recalculer toutes les formules des classeurs ouverts et relire les nouvelles couleurs. Le code se met aussi à jour dès qu’une valeur est saisie dans la cellule, même identique à la précédente.
Pour aller plus loin
Tout ce dont tu as besoin pour faire tourner tes macros et progresser sur Excel se trouve ici.

Télécharge notre cours Excel complet en PDF
Télécharger
Ton cours Excel gratuit
3 chapitres pour apprendre les bases et découvrir l'automatisation.
Voir le cours
Entraîne-toi sur nos 63 exercices corrigés
S’entraîner
Les macros Excel et le VBA expliqués simplement
Lire le guide
Activer les macros quand Excel les bloque
Voir comment