XD blog

blog page

compter les couleurs, excel, vba


2013-01-26 Compter le nombre de cellules d'une couleur sous Excel

On cherche à compter le nombre de cellules d'une couleur spécifique sous Excel dans une plage de données. On peut considérer l'exemple suivant qui fait apparaître un rectangle contenant des cases de couleurs différentes. La première ligne contient toutes les couleurs une seule fois, la seconde ligne contient le nombre de cellules dans le rectangle de la même couleur que la case du dessus.

On veut pouvoir écrire une formule du type :

=NbColorSameAs($B$6:$D$11;B1)
Il n'est pas possible de s'en sortir sans programmer soit même cette fonction. Pour cela, il faut : Le document Excel est maintenant prêt, il suffit d'insérer la première formule insérée plus haut dans ce blog (vous pourrez trouver un exemple ici).

Et la réciproque ?

Il est possible de modifier la couleur d'une cellule en fonction de la valeur qu'elle contient. C'est accessible via le menu "mise en forme conditionnelle", la suite est assez intuitive.

Compter des cases ayant une couleur et une valeur...

Il est possible d'adapter la fonction de telle sorte qu'elle compte le nombre de cellules ayant une certaine couleur et contenant un certain texte :

Function NbColorText(ByRef Plage As Range, ByRef Couleur As Byte, text As String) As Long
    Dim c As Range
    Dim nb As Long
    nb = 0
    For Each c In Plage
        If c.Interior.ColorIndex = Couleur And c.Value = text Then
            nb = nb + 1
        End If
    Next c
    NbColorText = nb
End Function

Function NbColorAndTextSameAs(ByRef Plage As Range, ByRef Cellule As Range) As Long
    NbColorAndTextSameAs = NbColorText(Plage, Cellule.Interior.ColorIndex, Cellule.Value)
End Function

Le cas des cellules fusionnées

Lorsque des cellules sont fusionnées, le résultat n'est pas intuitif. Supposons qu'on fusionne deux cellules et que la cellule fusionnée contient un certain texte, pour Excel, il y aura une cellule vide et une cellule contenant le texte. Lorsqu'on fait le décompte, il faut juste ne pas se tromper.

Dernière astuce : pour forcer le recalcul des valeurs, il faut appuyer sur F9 ou Shift+F9.


<-- -->

Xavier Dupré