Compter les cellules de couleur

Un collègue me demandait dernièrement s’il y avait une façon simple de compter le nombre de cellules rouges dans un tableau.
La manière la plus simple d’y arriver est d’écrire une formule en VBA.

Couleurs de base

Mais tout d’abord, regardons les 56 “couleurs de base” dans Excel que nous pouvons utiliser en VBA avec la propriété “ColorIndex”. On voit que la couleur rouge correspond à la valeur 3.
À noter que 0 correspond à aucune couleur et que 2 correspond à la couleur blanche.
image

Formule personnalisée

Voici comment créer une fonction personnalisée que nous appellerons NbCellCouleur et dont les arguments seront sur une plage et une couleur définies par l’utilisateur.
image
Pour créer cette formule :

  • Ouvrir l’éditeur VBA (ALT + F11)
  • Insérer un nouveau module dans le classeur (bouton de droite | Insertion… |Module)
  • Écrire le code VBA suivant :

Pour utiliser notre formule, il suffit de la taper et d’indiquer la plage voulue et la couleur recherchée (3) :
image
Voilà, assez simple, non ?! Et surtout, beaucoup plus rapide que de les compter une par une.

Tagués avec :
Publié dans VBA

17 comments on “Compter les cellules de couleur

  1. Anonymous on said:

    Ce commentaire a été supprimé par un administrateur du blog.

  2. GC Excel on said:

    Et quel est le problème exactement?Y a-t-il un message d’erreur?Est-ce que la macro a été insérée dans un module (pas dans une feuille)?Est-ce une couleur de base qui est comptée?Sans plus de détails, difficle de résoudre le problème… Merci !

  3. Anonymous on said:

    Hello,une question subsidiaire. A priori cela ne fonctionne pas si la cellule est colorisée via une mise en forme conditionnelle.Comment faire dans ce cas là ?Merci !

  4. GC Excel on said:

    Bonjour, En effet, cette technique ne fonctionne pas pour les cellules avec une mise en forme conditionnelle car les propriétés Color et ColorIndex ne retournent pas la couleur de la cellule. Il faut plutôt compter les cellules qui ont la même condition que la cellule pointée. La technique est expliquée sur le site de CPearson : http://www.cpearson.com/excel/cfcolors.htm

  5. Anonymous on said:

    bonjourje viens d’utiliser ce tutosuperpour ma part je comptabilise des cellules jaunes (code6)par contre lorsque le nombre de cellules change, la cellule qui comptabilise ne se met pas a jour?????comment faire?merci

  6. GC Excel on said:

    Bonjour, Il suffit d’ajouter la ligne de code “Application.Volatile” juste avant “Dim C as Range”. Le résultat sera mis à jour quand il y aura un changement** dans la feuille ou si vous appuyez sur F9 pour recalculer la feuille. ** À noter que si seulement la mise en forme d’une cellule est modifiée (ex. couleur), la fonction ne sera pas recalculée. Par contre, un changement de valeur ou de texte dans une cellule relancera le calcul.

  7. Anonymous on said:

    bonjourj’ai un code erreur apres avoir ajouté la ligne de codeerreur de compilationerreur de syntaxesinon pas de recalcule si seulement changement de couleuren fait mon fichier sert a gérer les licencié d’un club ds la case je mets le montant du / une activité et la case est jaune quand l’activité n’est pas payée. je voulais comptabilisée le nombre d’impayés et une fois payée j’enleve le jaune. avec mise a jour du nombre de non payésmerci

  8. Anonymous on said:

    désolé voila ce que j’avais tapéFunction NbCellCouleur(Plage As Range, Couleur As Integer) As Long“Application.Volatile”Dim c As Range

  9. Anonymous on said:

    Bonjour, j’ai essayer votre formule, mais cela ne fonctionne pas du tout. Est ce qu’il y a une autre manip pour que l’info passe bien de VBA sur Excel ?Merci

  10. Anonymous on said:

    Bonjour,J’ai testé et ça ne marche pas.Quand je note la formule, j’ai un message d’erreur “Nom ambigü détecté : NbCellCouleur”.je me suis trompé où ?

  11. Anonymous on said:

    Merci d’avance.

  12. Anonymous on said:

    Application.Volatile True

  13. Anonymous on said:

    Testé et approuvé! Merci GC!

  14. ouali on said:

    Bonjour ,Un grand merci ça marche trés bien en renvanche ça ne fonctionne pas en présence d’un filtre ;la NbCellcouleur ne calcule pas le sous total lorsque je veux avoir que le nombre de cellule en couleur filtrées ,
    Je vous en remercie par avance

    • GCExcel on said:

      Bonjour,
      En effet la fonction actuelle ne gère pas les filtres. Je n’avais eu à le faire avant. Je vais y penser et voir si un solution est possible.

  15. YOUWERO alain on said:

    merci d’avance ça marche !!!

  16. delamur on said:

    merci c’est génial si ça marche mais chez moi il me marque “erreur de syntaxe du BASIC, type de donnée range inconnu”

    une idée???

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

Les balises HTML ne sont pas autorisés.