COmpter les cellules en fonction du format et du contenu

[Résolu/Fermé]
Signaler
Messages postés
8
Date d'inscription
mardi 3 octobre 2017
Statut
Membre
Dernière intervention
5 octobre 2017
-
Messages postés
8
Date d'inscription
mardi 3 octobre 2017
Statut
Membre
Dernière intervention
5 octobre 2017
-
Bonsoir
Je voudrais compter les celules rouge ou bleues ou.... J'ai teste plusieurs script mais le résultats n'est pas à ce que je veux. Je suis amateur dans les macros excel.
Mon probléme : si une cellule sur une plage donnée (en ligne) avec un fond rouge ou bleu... et avec un contenu spécifque (T ou R) avec une couleur de fond définie je voudrais faire la somme de ces cellules.
Si la cellule est rouge avec "T" ou "R" quelle compte le nombre de cellule rouge.
Je ne sais pas si cela viens mon exel (2013 pro). La fonction de recacul ne fonctionne pas ni la touche F9
Ci dessous le script pour le couleurs (trouvé sur le net) mais il ne fonctionne pas chez moi. si je je mets aucun remplissage aucun calcul ne se fait.
Merci de votre aide



Function NbCellCouleur(Plage As Range, Couleur As Integer) As Long
Dim c As Range

NbCellCouleur = 0
For Each c In Plage
If c.Interior.ColorIndex = Couleur Then
NbCellCouleur = NbCellCouleur + 1
End If
Next c

End Function
Function CodeCouleur(CelluleCouleur As Range) As Long
'Retourne le code couleur de la CelluleCouleur
Application.Volatile
CodeCouleur = CelluleCouleur.Interior.ColorIndex
End Function

8 réponses

Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 530
Bonjour,

Bienvenue sur le forum.

La fonction de recacul ne fonctionne pas ni la touche F9
Tu dois avoir un paramétrage bien malade dans ce cas...

Si la cellule est rouge avec "T" ou "R" quelle compte le nombre de cellule rouge.
Il serait peut-être judicieux d'utiliser une autre méthode pour faire un cumul car un tableur est surtout prévu pour cumuler des nombres.

il ne fonctionne pas chez moi
Il faut autoriser les macros pour avoir un résultat car la fonction est opérationnelle si elle est implantée correctement.
Bonjour olivivier59,

Pour ta fonction NbCellCouleur(), si tu veux compter les cellules
qui n'ont pas de couleur de fond (= Aucun remplissage), tu dois
transmettre pour le 2ème paramètre Couleur : -4142 (xlNone).

Cordialement
Messages postés
8
Date d'inscription
mardi 3 octobre 2017
Statut
Membre
Dernière intervention
5 octobre 2017

Merci pour vos réponses rapides je teste et reviens vers vers vous dès les tests effectués
Énorme merci
Messages postés
8
Date d'inscription
mardi 3 octobre 2017
Statut
Membre
Dernière intervention
5 octobre 2017

pour être complet : les macros sont activées. j'ai enregistré le fichier est redemmarrer excel. j'ai l'impression que la macro "fonctionne à l'envers" . si j'efface le contenu de la cellule ma macro fonctionne mais une fois. j'ai essayer de compléter avec un remplissage blanc au lieu de aucun remplissage mais sans résultat. je vais persévérer. merci à vous
⚠  Le code couleur à transmettre pour du blanc est 2 ; le blanc n'est pas la même
chose que Aucun remplissage ; je précise au cas où : tu le savais peut-être déjà.  ;)
Messages postés
8
Date d'inscription
mardi 3 octobre 2017
Statut
Membre
Dernière intervention
5 octobre 2017
> paul
Merci paul je l'ai testé mais sans résultat. je cherche encore cette semaine et vous tiens au courant. encore une fois merci
Messages postés
24200
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
17 octobre 2021
6 927
Bonjour,

Comme tu n'as pas précisé, tu as vu que c'est pour compter des couleurs mises manuellement et non par MFC ?
eric
Messages postés
8
Date d'inscription
mardi 3 octobre 2017
Statut
Membre
Dernière intervention
5 octobre 2017

Eriiic oui je sais que le codege des MEFC sont différents. Merci
Messages postés
8
Date d'inscription
mardi 3 octobre 2017
Statut
Membre
Dernière intervention
5 octobre 2017

bonsoir à tous

Tout d'abord merci pour les précisions apportées.
J'ai résolu mon problème.
Je vous mets le code ci dessous pour aiser d'autre personne

Code pour trouver le code d'une couleur

Function Couleur(Cellule As Range)
Application.Volatile
Couleur = Cellule.Interior.ColorIndex
End Function

et ci dessous le code utiliser pour compter les cellule de couleurs différentes

Function NbCoul1(Zne As Range, Couleur As String)
Application.Volatile True
For Each cell In Zne
If cell.Interior.ColorIndex = 37 Then NbCoul1 = NbCoul1 + 1
If cell.Interior.ColorIndex = 6 Then NbCoul1 = NbCoul1 + 2
If cell.Interior.ColorIndex = 3 Then NbCoul1 = NbCoul1 + 3
If cell.Interior.ColorIndex = 14 Then NbCoul1 = NbCoul1 + 4
If cell.Interior.ColorIndex = 47 Then NbCoul1 = NbCoul1 + 5
Next
NbCoul1 = NbCoul1
End Function


il me fallait un facteur multiplicatif donc la raison des +1, +2 +3.......

Par contre je ne sais pas ou mettre résolu.
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 530
Bonsoir,

J'ai résolu mon problème
C'est très bien pour toi et vu que la solution n'a rien à voir avec l'exposé de la demande, ("avec un fond rouge ou bleu... et avec un contenu spécifique (T ou R) ") il était hautement improbable que l'on arrive à ton résultat ! ;-)
Messages postés
8
Date d'inscription
mardi 3 octobre 2017
Statut
Membre
Dernière intervention
5 octobre 2017

Bonsoir gbinforme effectivement j'étais partis sur une idée. Mais la persévérence à payée. J'ai pris un stylo et ecris ce que je voulais.
Encore merci pour tout
Messages postés
8
Date d'inscription
mardi 3 octobre 2017
Statut
Membre
Dernière intervention
5 octobre 2017

Le contenu "T ouR" venais du fait que je prenais comme référence une cellule copiée avec une liste déroulante