Vous avez un tableau Excel avec des cellules colorées — rouge pour les alertes, vert pour les validés, orange pour les en cours — et vous voulez simplement additionner les montants selon leur couleur.
Problème : Excel n’a pas de fonction native pour ça.
La réponse que vous trouvez partout sur internet ? « Il faut écrire une macro VBA. » Ce qui veut dire : code à maintenir, fichier à sécuriser, collègue perdu dès qu’il reprend le fichier.
Dans cet article, on passe en revue toutes les méthodes disponibles — leurs avantages, leurs limites — et on vous montre comment faire une somme par couleur directement dans une formule Excel, sans écrire une ligne de code.
Pourquoi Excel ne peut pas faire de somme par couleur nativement
Excel propose des fonctions conditionnelles puissantes : SOMME.SI, NB.SI, MOYENNE.SI. Mais elles fonctionnent toutes sur des valeurs ou du texte — jamais sur la mise en forme.
La couleur de fond d’une cellule est une propriété de formatage, pas une valeur. Excel ne l’expose pas dans ses fonctions de calcul standard.
Ce n’est pas un oubli : c’est un choix d’architecture. La mise en forme conditionnelle et le calcul sont deux couches séparées dans Excel.
Résultat : pour faire une somme par couleur, vous devez soit passer par VBA, soit adopter une autre approche.
Les méthodes existantes : avantages et limites
Méthode 1 — La macro VBA (la plus courante, la moins recommandée)
La solution VBA classique consiste à créer une fonction personnalisée qui lit la propriété .Interior.Color de chaque cellule :
Function SommeCouleur(plage As Range, cellRef As Range) As Double
Dim c As Range
Dim couleur As Long
couleur = cellRef.Interior.Color
For Each c In plage
If c.Interior.Color = couleur Then
SommeCouleur = SommeCouleur + c.Value
End If
Next c
End Function
Avantages : Ça fonctionne. La fonction est réutilisable dans le classeur.
Limites :
- Le fichier doit être enregistré en
.xlsm(macro activée) — bloqué par certains DSI - La fonction ne se recalcule pas automatiquement quand vous changez une couleur
- Un collègue qui reprend le fichier ne sait pas d’où vient la fonction
- Impossible à auditer sans ouvrir l’éditeur VBA
- Interdit dans certains contextes d’entreprise (politique de sécurité macro)
Méthode 2 — Filtrer puis utiliser SOUS.TOTAL
Une astuce sans VBA : filtrer manuellement par couleur (Données → Filtrer → Filtrer par couleur), puis utiliser =SOUS.TOTAL(9; plage) qui ne compte que les cellules visibles.
Avantages : Pas de VBA, fonctionne sur toutes les versions Excel.
Limites :
- C’est manuel — vous devez refaire la manipulation à chaque mise à jour
- Vous ne pouvez afficher qu’une couleur à la fois
- Impossible à intégrer dans un tableau de bord dynamique
- Pas une vraie formule : c’est un contournement
Méthode 3 — Ajouter une colonne de correspondance couleur → valeur
Certains recommandent d’ajouter une colonne texte (« rouge », « vert », « orange ») en parallèle de la colonne couleur, puis d’utiliser SOMME.SI dessus.
Avantages : Simple, lisible, zéro VBA.
Limites :
- Double saisie : vous coloriez ET vous écrivez la valeur
- Les deux colonnes peuvent se désynchroniser
- Ça ne fonctionne pas si la couleur est appliquée par mise en forme conditionnelle
La solution formula-based : =PF.SOMME_SI_COULEUR()
HexFormula propose une approche différente : des fonctions Excel qui lisent directement la couleur de fond des cellules, utilisables comme n’importe quelle formule native.
SOMME.SI par couleur
=PF.SOMME_SI_COULEUR(plage_valeurs; cellule_couleur_ref)
Exemple concret :
Vous avez une liste de commandes en colonne A (montants) et en colonne B les cellules sont colorées selon le statut. Vous voulez la somme des commandes « validées » (fond vert) :
=PF.SOMME_SI_COULEUR(A2:A100; D1)
Où D1 contient une cellule avec le fond vert de référence. La formule additionne toutes les cellules de A2:A100 dont le fond correspond à la couleur de D1.
Ce que ça change par rapport à VBA :
- La formule vit dans la cellule : visible, lisible, auditable
- Elle se recalcule automatiquement quand les valeurs changent
- Elle est partageable : n’importe qui avec HexFormula peut l’utiliser
- Aucun paramètre de sécurité macro à activer
NB.SI par couleur
=PF.NB_SI_COULEUR(plage; cellule_couleur_ref)
Même logique, mais compte le nombre de cellules plutôt que d’additionner les valeurs.
Exemple : Combien de lignes sont marquées « en attente » (fond orange) dans mon tableau de suivi ?
=PF.NB_SI_COULEUR(B2:B500; E1)
Cas pratiques
Tableau de bord de suivi de projet
| Statut | Couleur | Formule HexFormula | Résultat |
|---|---|---|---|
| Terminé | 🟢 Vert | =PF.NB_SI_COULEUR(B:B; H1) |
Nombre de tâches terminées |
| En cours | 🟡 Jaune | =PF.NB_SI_COULEUR(B:B; H2) |
Nombre de tâches en cours |
| En retard | 🔴 Rouge | =PF.SOMME_SI_COULEUR(C:C; H3) |
Charge totale en retard (heures) |
Reporting financier avec alertes couleur
Un contrôleur de gestion colorie en rouge les lignes de budget dépassé. En bas de colonne, au lieu d’une macro, il écrit :
=PF.SOMME_SI_COULEUR(D2:D200; rouge_ref)
Le total des dépassements se met à jour automatiquement dès qu’une nouvelle ligne est coloriée.
Inventaire avec seuils de stock
Produits en rupture (rouge), stock faible (orange), stock normal (vert). Une formule par couleur suffit pour construire un résumé de stock en temps réel.
FAQ
Est-ce que =PF.SOMME_SI_COULEUR fonctionne avec la mise en forme conditionnelle ?
Oui — et c’est la seule solution pour avoir un recalcul directe de la valeur. Dès que la valeur change, la mise en forme conditionnelle e modifier et PF.SOMME_SI_COULEUR se met à jour comme toutes les autres formules Excel. SOMME.SI classique.
Faut-il une cellule de référence pour chaque couleur ?
Oui. La cellule de référence (ex : D1 avec un fond vert) sert à indiquer quelle couleur cibler. Vous pouvez créer une petite « palette de référence » hors tableau avec une cellule par couleur utilisée dans votre fichier.
La formule se recalcule-t-elle automatiquement si je change une couleur ?
Elle se recalcule quand les valeurs changent. Si vous ne changez que la couleur d’une cellule sans modifier de valeur, vous pouvez forcer le recalcul avec F9. C’est une contrainte inhérente au moteur de calcul Excel, qui ne détecte pas les changements de mise en forme comme des événements de recalcul.
Est-ce compatible avec toutes les versions d’Excel ?
HexFormula fonctionne avec Excel 2016, 2019, 2021 et Microsoft 365 sur Windows. Pas encore disponible sur Mac ni Excel Online.
Peut-on combiner PF.SOMME.SI.COULEUR avec d’autres conditions ?
Pas directement dans une seule formule. Pour une double condition (couleur ET valeur), la méthode recommandée est d’utiliser PF.SOMME_SI_COULEUR pour isoler les cellules par couleur, puis de filtrer le résultat dans une colonne auxiliaire avec SI.
Conclusion
Faire une somme par couleur dans Excel est l’un de ces besoins qui semble basique mais que les fonctions natives ne couvrent pas. La macro VBA fonctionne, mais elle crée des dépendances difficiles à maintenir en équipe.
L’approche formula-based avec =PF.SOMME_SI_COULEUR() et =PF.NB_SI_COULEUR() change la donne : la logique reste dans la cellule, visible et partageable, sans aucune ligne de code.

