Calcul de cellules sur Excel

Alphe56 Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   -  
m@rina Messages postés 23902 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

J'ai un soucis sur Excel. J'aimerais savoir si il existe un moyen de compter le nombre de cellules d'une certaine couleur présente sur une ligne

(exemple si par hasard je me suis mal exprimé: dans une ligne, j'ai 4 cellules de couleur rouge et 2 cellules de couleur verte. J'aimerais avoir la possibilité qu'en bout de ligne, Excel m'indique: il y'a 4 cellules rouges et 2 cellules vertes)

Merci à tous ceux qui m'apporteront une aide et aussi à tous les autres.

Alphe

5 réponses

m@rina Messages postés 23902 Date d'inscription   Statut Contributeur Dernière intervention   11 464
 
Bonjour,

La solution qui passe forcément par une macro est ici :
http://excelabo.net/excel/formatsdiv.php#additionrouge

m@rina
0
Alphe56 Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
Je te remercie de ton aide. Pardonne moi de passer pr un ignorant mais je ne vois pas l'endroit dans la macro, ou il faut mettre la plage ou la macro doit compter les cellule. Peux-tu m'aider, s'il te plait.

Merci d'avance
0
m@rina Messages postés 23902 Date d'inscription   Statut Contributeur Dernière intervention   11 464
 
Re...

Dans la macro, on utilise "ActiveSheet.UsedRange" pour spécifier toutes les cellules utilisées de la feuille active.

Mais bien entendu, tu peux changer en mettant ta propre plage :
ActiveSheet.Range("A1:A10")

Cette macro est un exemple qui affiche un message sur le nombre de cellules rouges. On pourrait faire une fonction :

Function nbcouleur(maplage As Range, Couleur As String)

Select Case Couleur

Case "rouge"
Couleur = 3
Case "vert"
Couleur = 50
'on peut ajouter d'autres couleurs

End Select

For Each cell In maplage
If cell.Interior.ColorIndex = Couleur Then nombre = nombre + 1

Next
nbcouleur = nombre
End Function


Tu copies-colles cette fonction dans un module et ensuite, tu pourras utiliser une formule dans ta feuille de calcul pour compter le nombre de cellules rouges ou vertes (tu peux ajouter d'autres couleurs dans la fonction) :
=nbcouleur(A1:A10;"rouge")
=nbcouleur(A1:A10;"vert")

Mettre à jour les calcul avec F9 en cas de changement de couleurs.

m@rina
0
Alphe56 Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
Franchement, merci beaucoup. Ca m'aide enormement.
0
Raymond PENTIER Messages postés 58990 Date d'inscription   Statut Contributeur Dernière intervention   17 355
 
Il existe une méthode très simple, et qui ne fait pas appel aux macros, qui consiste à obtenir les couleurs (3 couleurs maximum plus la couleur par défaut jusqu'à la version 2003 de Word) en tapant R, B ou V dans les cellules et en employant la mise en forme conditionnelle pour qu'elles se colorent en rouge, bleu et vert. Il suffit ensuite d'utiliser la fonction NB.SI pour compter le nombre de cellules contenant chacune de ces lettres ...
0
Alphe56 Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
J'ai une question:
Dans la macro suivante, il affiche un message avec le nombre de cellule de la couleur indiquée

Sub inventaireRouge()
sommeRouge = 0
compterRouge = 0
For Each cell In ActiveSheet.Range("A4:EX4")
If cell.Interior.Color = vbRed Then
On Error Resume Next
sommeRouge = sommeRouge + cell.Value
On Error GoTo 0
compterRouge = compterRouge + 1
End If
Next
If compterRouge = 1 Then c = "cellule" Else c = "cellules"
MsgBox compterRouge & " " & c & " -- Total = " & sommeRouge

End Sub


Je souhaiterais savoir sil y'avait la possibilité de supprimer la boite de message et d'indiquer dans une cellule d'une feuille différente, la somme trouvée.

merci beaucoup
0
m@rina Messages postés 23902 Date d'inscription   Statut Contributeur Dernière intervention   11 464 > Alphe56 Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,

Oui bien sûr, on utilise souvent le message dans les exemples pour afficher le résultat dont on ne sait que faire !! :D))

Remplace la ligne :
MsgBox compterRouge & " " & c & " -- Total = " & sommeRouge

Par :
Worksheets("ma feuille").Range("ma cellule").Value = compterRouge

m@rina
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
Salut,

Tu peux également utiliser ce code pour afficher le compteur dans une cellule

Sub Compte_Cellule_Couleur()
pc = 1 'colonne A première colonne du tableau
dc = 154 'colonne D dernière colonne du tableau
pl = 4 'ligne 4 première ligne du tableau
dl = 4 'ligne 4 dernière ligne du tableau, ce qui correspond de la cellule A4 à la cellule EX4
Range("G20") = 0 'cellule compteur
dest = "G20" ' cellule où doit s'inscrire le nombre de cellules de couleur
ccoul = 3 ' code de la couleur Ou faire référence à une cellule contenant le code couleur 'ccoul = Range("F2")
ncel = 0 'affichage 0 si aucune couleur trouvée
For c = pc To dc
For l = pl To dl
If Cells(l, c).Interior.ColorIndex = ccoul Then ncel = ncel + 1
Next l, c
Range(dest) = ncel
End Sub
0