Vous avez coloré en vert les ventes validées, en orange celles à vérifier et en rouge les dossiers en retard. Il ne reste plus qu’à répondre à une question très pratique : comment additionner uniquement les cellules d’une certaine couleur dans Excel ?
La difficulté vient d’un détail important : Excel ne propose pas de fonction native SOMME.SI.COULEUR. Les fonctions classiques comme SOMME.SI et SOMME.SI.ENS analysent le contenu des cellules, mais pas leur mise en forme.
Heureusement, plusieurs méthodes permettent d’obtenir le résultat souhaité. Certaines sont très simples, d’autres plus automatisables. Le bon choix dépend surtout de la manière dont votre fichier est construit et de la fréquence à laquelle les couleurs changent.
Pourquoi SOMME.SI ne fonctionne pas avec une couleur ?
Imaginons un tableau contenant des montants en colonne B et des couleurs en colonne A :
- Vert : commande validée
- Orange : commande en attente
- Rouge : commande annulée
Une formule comme celle-ci fonctionne uniquement si le critère est une valeur ou un texte présent dans une cellule :
=SOMME.SI(A2:A20;"Validée";B2:B20)
Mais la couleur verte n’est pas une donnée directement exploitable par SOMME.SI. Il s’agit d’une propriété visuelle appliquée à la cellule. Excel voit bien cette mise en forme, mais les fonctions standards ne savent pas l’utiliser comme critère.
La solution consiste donc à contourner cette limite : utiliser un filtre, créer un critère auxiliaire, ou ajouter une petite fonction VBA.
La méthode la plus simple : filtrer par couleur
Si vous souhaitez obtenir rapidement un total sans construire une formule complexe, le filtre par couleur est souvent la meilleure option. Cette technique ne nécessite aucun code et fonctionne dans toutes les versions récentes d’Excel.
Prenons un tableau organisé ainsi :
- Colonne A : produit
- Colonne B : statut, avec une couleur de remplissage
- Colonne C : montant
Commencez par sélectionner une cellule de votre tableau, puis rendez-vous dans Données > Filtrer. Une flèche apparaît dans les en-têtes de colonnes.
Cliquez sur la flèche de la colonne contenant les cellules colorées. Choisissez ensuite Filtrer par couleur, puis sélectionnez la couleur souhaitée, par exemple le vert.
Excel masque alors les lignes qui ne correspondent pas à cette couleur. Pour additionner uniquement les montants visibles, utilisez la fonction SOUS.TOTAL :
=SOUS.TOTAL(109;C2:C100)
Le nombre 109 indique à Excel d’effectuer une somme en ignorant les lignes masquées par un filtre. Le résultat correspond donc au total des cellules visibles dans la colonne C.
Cette méthode est particulièrement adaptée lorsque vous voulez analyser ponctuellement un tableau. Elle a aussi l’avantage d’être facile à comprendre pour les autres utilisateurs du fichier.
Attention à la fonction SOUS.TOTAL
Il existe une petite subtilité entre les références 9 et 109 utilisées avec SOUS.TOTAL.
SOUS.TOTAL(9;plage)ignore les lignes filtrées, mais peut inclure les lignes masquées manuellement.SOUS.TOTAL(109;plage)ignore les lignes filtrées et les lignes masquées manuellement.
Dans la plupart des cas, la version 109 est donc la plus sûre lorsque vous voulez réellement additionner uniquement ce qui est visible.
Cette solution a toutefois une limite : elle ne permet pas d’afficher en même temps le total des cellules vertes, orange et rouges. Il faut modifier le filtre pour passer d’une couleur à l’autre.
Créer une colonne de statut plutôt que de dépendre de la couleur
Avant de chercher une formule sophistiquée, posez-vous cette question : la couleur représente-t-elle une information importante ?
Si la réponse est oui, il est préférable de stocker cette information dans une colonne dédiée. La couleur peut ensuite être appliquée automatiquement avec une mise en forme conditionnelle.
Par exemple, ajoutez une colonne nommée Statut contenant les valeurs suivantes :
- Validée
- En attente
- Annulée
Vous pouvez ensuite additionner les montants validés avec une formule classique :
=SOMME.SI(B2:B100;"Validée";C2:C100)
Pour additionner les commandes en attente :
=SOMME.SI(B2:B100;"En attente";C2:C100)
Il est ensuite possible de colorer automatiquement la colonne Statut grâce à la mise en forme conditionnelle. Par exemple, les cellules contenant « Validée » seront affichées en vert, celles contenant « En attente » en orange, et celles contenant « Annulée » en rouge.
Cette approche est généralement la plus fiable. La couleur devient un indicateur visuel, tandis que le texte constitue la véritable donnée utilisée dans les calculs. Vos formules restent compréhensibles, vos tableaux sont plus faciles à filtrer et les erreurs sont moins fréquentes.
Utiliser une colonne auxiliaire avec une valeur numérique
Dans certains fichiers, vous ne pouvez pas modifier la structure principale du tableau. Vous pouvez alors ajouter une colonne auxiliaire qui transforme les catégories en valeurs exploitables.
Par exemple, dans une colonne D, vous pouvez utiliser une formule comme celle-ci :
=SI(B2="Validée";C2;0)
La colonne D reprend le montant uniquement lorsque le statut est « Validée ». Il suffit ensuite de faire la somme de cette colonne :
=SOMME(D2:D100)
Cette méthode est très pratique lorsque plusieurs règles doivent être appliquées. Elle permet notamment de calculer séparément les montants selon différents états, sans utiliser de macro.
La méthode avec VBA pour additionner réellement par couleur
Si la couleur est déjà utilisée comme seule information et que vous ne souhaitez pas ajouter de colonne auxiliaire, VBA peut créer une fonction personnalisée. Vous pourrez ensuite écrire une formule ressemblant à SOMME.SI.COULEUR.
Voici une fonction VBA basée sur la couleur de remplissage d’une cellule de référence :
Function SommeSiCouleur(PlageCouleurs As Range, CelluleCouleur As Range, PlageSomme As Range) As Double Dim Cellule As Range Dim Total As Double If PlageCouleurs.Cells.Count <> PlageSomme.Cells.Count Then SommeSiCouleur = CVErr(xlErrRef) Exit Function End If For Each Cellule In PlageCouleurs If Cellule.Interior.Color = CelluleCouleur.Interior.Color Then Total = Total + PlageSomme.Cells(Cellule.Row - PlageCouleurs.Row + 1, 1).Value End If Next Cellule SommeSiCouleur = TotalEnd Function
Pour ajouter cette fonction dans Excel, appuyez sur Alt + F11. Dans l’éditeur VBA, sélectionnez Insertion > Module, puis collez le code. Enregistrez ensuite le classeur au format .xlsm afin de conserver la macro.
Supposons que les couleurs se trouvent dans B2:B100 et les montants dans C2:C100. Placez dans une cellule quelconque la couleur servant de modèle, puis utilisez cette formule :
=SommeSiCouleur(B2:B100;E2;C2:C100)
Dans cet exemple, E2 est la cellule de référence dont la couleur doit être recherchée. Si E2 est verte, Excel additionne les montants correspondant aux cellules vertes de B2:B100.
Une variante VBA avec une couleur codée en dur
Vous pouvez également choisir la couleur directement à partir d’une cellule de référence située dans la plage. Cette approche est plus souple que d’utiliser un numéro de couleur, car vous pouvez modifier la couleur en cliquant simplement sur la cellule modèle.
Voici une version plus courte de la fonction :
Function SommeCouleur(Plage As Range, CouleurModele As Range, PlageMontants As Range) As Double Dim i As Long Dim Resultat As Double For i = 1 To Plage.Cells.Count If Plage.Cells(i).Interior.Color = CouleurModele.Interior.Color Then If IsNumeric(PlageMontants.Cells(i).Value) Then Resultat = Resultat + PlageMontants.Cells(i).Value End If End If Next i SommeCouleur = ResultatEnd Function
La formule correspondante est :
=SommeCouleur(B2:B100;E2;C2:C100)
La condition IsNumeric évite qu’une cellule contenant du texte ou une erreur ne bloque le calcul. C’est un petit détail, mais il peut sauver une après-midi de recherche quand le tableau contient des valeurs irrégulières.
Les limites d’une fonction VBA basée sur la couleur
Une fonction personnalisée VBA fonctionne bien, mais elle demande quelques précautions.
- Le fichier doit être enregistré au format .xlsm.
- Les macros doivent être autorisées à l’ouverture du classeur.
- Une simple modification de couleur ne déclenche pas toujours automatiquement le recalcul de la formule.
- Le fichier devient moins pratique à partager avec une personne qui utilise Excel pour le web ou qui bloque les macros.
Après avoir changé une couleur, appuyez sur F9 pour forcer le recalcul. Si cela ne suffit pas, vous pouvez modifier temporairement la formule ou utiliser Ctrl + Alt + F9 pour recalculer complètement le classeur.
Autre point important : la fonction compare ici la couleur de remplissage réelle avec Interior.Color. Si la couleur provient d’une mise en forme conditionnelle, le résultat peut être différent selon la manière dont le code est écrit. La couleur affichée et la couleur définie directement dans la cellule ne sont pas toujours traitées de la même façon.
Et si la couleur vient d’une mise en forme conditionnelle ?
C’est le piège classique. Vous voyez une cellule en rouge à l’écran, mais cette couleur est peut-être produite par une règle conditionnelle, comme « montant inférieur à zéro » ou « date dépassée ».
Dans ce cas, il est préférable d’utiliser directement la règle qui produit la couleur. Si les cellules deviennent rouges lorsque le montant est négatif, vous pouvez écrire :
=SOMME.SI(C2:C100;"<0";C2:C100)
Si elles deviennent vertes lorsque le statut est « Payé », utilisez plutôt :
=SOMME.SI(B2:B100;"Payé";C2:C100)
Cette formule est plus robuste que l’analyse de la couleur. Elle continue de fonctionner même si vous changez le thème du classeur ou remplacez le vert par du bleu. La règle métier reste la même, seule l’apparence évolue.
Quelle méthode choisir ?
- Filtre par couleur + SOUS.TOTAL : idéal pour une analyse rapide et ponctuelle.
- Colonne Statut + SOMME.SI : la solution la plus propre et la plus fiable pour un fichier durable.
- Colonne auxiliaire : pratique lorsque vous devez appliquer plusieurs conditions ou conserver une structure simple.
- Fonction VBA : adaptée aux classeurs existants qui reposent déjà sur les couleurs et doivent être automatisés.
Dans un tableau professionnel, je recommande généralement de ne pas faire de la couleur votre seule source d’information. Une cellule verte est agréable à lire, mais elle ne dit pas toujours pourquoi elle est verte. Un statut explicite permet à Excel, à vos collègues et à votre futur vous-même de comprendre immédiatement la logique du fichier.
Les erreurs fréquentes à éviter
- Utiliser
SOMME.SIen pensant qu’elle détecte automatiquement les couleurs. - Oublier que les lignes masquées manuellement peuvent être prises en compte avec
SOUS.TOTAL(9;...). - Comparer des plages qui ne possèdent pas le même nombre de cellules dans une fonction VBA.
- Appliquer une couleur manuellement alors que le tableau utilise une mise en forme conditionnelle.
- Partager un fichier contenant des macros sans prévenir les utilisateurs.
- Utiliser la couleur comme unique indication dans un tableau important.
La couleur est un excellent outil visuel, mais elle devient vraiment efficace lorsqu’elle accompagne une donnée claire. Pour un besoin ponctuel, le filtre par couleur fera parfaitement l’affaire. Pour un tableau appelé à évoluer, une colonne de statut et une formule SOMME.SI seront presque toujours préférables. Et si votre fichier est déjà construit autour des couleurs, la fonction VBA vous permettra de garder votre organisation tout en automatisant les calculs.
