Ca vous est forcement déjà arrivé. Vous avez votre rapport de ventes, votre liste de courses ou un magnifique diagramme de Gant et maintenant que tout est en place, il vous faut compter combien de lignes ou colones sont d’une couleur bien précise.
Malheureusement Excel ne vous permet pas de faire quelque chose de simple avec une fonction. Il va falloir mettre la main à la pate et pour ça on a deux options.
La méthode très manuelle pour compter des cellules de couleur
On va commencer par faire avec ce qu’on a, c’est à dire les options de filtre d’Excel.
- On a notre tableau avec des couleurs.
- On rajoute des filtres.
- On filtre par couleur.
C’est pas plus compliqué que ça et ça peut très bien répondre à votre besoin.
La méthode plus solide pour compter des cellules de couleur
On ne va pas se mentir, il y a plein de cas pour lesquels la première méthode ne vous plaira pas: si votre tableau change fréquemment, si vous souhaitez avoir un récapitulatif automatique du compte de cases colorées ou si vous collaborez à plusieurs sur un même document.
Cette deuxième méthode vise à créer une nouvelle fonction dans Excel, juste pour ce fichier, qui vous permettra de compter le nombre de cellules d’une couleur spécifique dans une zone délimitée. Parfait non ?
Pour cela, on va utiliser le langage de programmation d’Excel, le VBA. Une fois la fonction crée, on aura plus qu’à l’utiliser comme n’importe quelle autre fonction pour faire notre tableau.
On crée la fonction VBA
1. Commencez par faire un clic droit sur le nom de votre onglet (en bas) et choisissez « View code » ou « Afficher le code » en Français.
2. Ajoutez un module en faisant clic droit sur le nom de votre onglet (ici « Sheet1 » ou « Onglet 1 »), puis Insert, puis Module:
3. Copiez / collez la fonction ci-dessous dans la fenêtre qui s’ouvrira. Fermez ensuite l’éditeur de code pour revenir à votre tableau Excel normal.
Excel vous demandera probablement de sauvegarder le fichier. Vous noterez que le type de fichier devient maintenant un .xlsm (‘m’ pour Macro).
'Code created by Sumit Bansal from https://trumpexcel.com Function GetColorCount(CountRange As Range, CountColor As Range) Dim CountColorValue As Integer Dim TotalCount As Integer CountColorValue = CountColor.Interior.ColorIndex Set rCell = CountRange For Each rCell In CountRange If rCell.Interior.ColorIndex = CountColorValue Then TotalCount = TotalCount + 1 End If Next rCell GetColorCount = TotalCount End Function
On utilise notre nouvelle fonction
Maintenant que le plus dur est derrière nous, passons à l’attaque, armés de notre nouvelle fonction.
- Je commence par créer une cellule de la couleur que je souhaite énumérer. J’ai choisis ici la cellule B1.
2. Je vais ensuite inscrire la formule suivante dans ma cellule C5:
=getColorCount(D5:CB5;$B$1) Autrement dit: =getColorCount([LA ZONE DANS LAQUELLE IL FAUT COMPTER];[LA COULEUR])
Et là, miracle. Si vous avez tout suivi, votre cellule C5 va vous dire combien de cellules jaunes se trouvent entre D5 et CB5. Les cellules sans couleur ou d’autre couleur ne seront pas comptées.
Pour aller plus loin
- Téléchargez le fichier de démo.
- Pour en savoir plus sur le diagramme de Gant (Gantt Chart) allez voir sur ce site.
- Vous trouverez le code et d’autres exemples (en Anglais) sur ce site.
Bon comptage
16/09/2023 at 07:39
BONJOUR
trés bien la fonction GetColorCount
Juste un petit PB, si je modifie une donnée (couleur) le calcul ne se fait pas automatiquement pourtant je suis en mode de calcul auto.
je dois cliquer sur la cellule contenant la fonction pour faire la mise à jour
Je ne vois pas le PB.
Cordialement
22/05/2024 at 18:01
Même le fichier démo ne fonctionne pas.
Pas sérieux…