COmpter les cellules en fonction du format et du contenu

Résolu/Fermé
olivivier59 Messages postés 8 Date d'inscription mardi 3 octobre 2017 Statut Membre Dernière intervention 5 octobre 2017 - 3 oct. 2017 à 22:12
olivivier59 Messages postés 8 Date d'inscription mardi 3 octobre 2017 Statut Membre Dernière intervention 5 octobre 2017 - 5 oct. 2017 à 22:43
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
A voir également:

8 réponses

gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
3 oct. 2017 à 22:24
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.
0
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
0
olivivier59 Messages postés 8 Date d'inscription mardi 3 octobre 2017 Statut Membre Dernière intervention 5 octobre 2017
3 oct. 2017 à 22:41
Merci pour vos réponses rapides je teste et reviens vers vers vous dès les tests effectués
Énorme merci
0
olivivier59 Messages postés 8 Date d'inscription mardi 3 octobre 2017 Statut Membre Dernière intervention 5 octobre 2017
3 oct. 2017 à 22:46
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
0
⚠  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à.  ;)
0
olivivier59 Messages postés 8 Date d'inscription mardi 3 octobre 2017 Statut Membre Dernière intervention 5 octobre 2017 > paul
3 oct. 2017 à 22:57
Merci paul je l'ai testé mais sans résultat. je cherche encore cette semaine et vous tiens au courant. encore une fois merci
0

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

Posez votre question
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 211
4 oct. 2017 à 00:10
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
0
olivivier59 Messages postés 8 Date d'inscription mardi 3 octobre 2017 Statut Membre Dernière intervention 5 octobre 2017
5 oct. 2017 à 20:04
Eriiic oui je sais que le codege des MEFC sont différents. Merci
0
olivivier59 Messages postés 8 Date d'inscription mardi 3 octobre 2017 Statut Membre Dernière intervention 5 octobre 2017
5 oct. 2017 à 20:03
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.
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
5 oct. 2017 à 21:07
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 ! ;-)
0
olivivier59 Messages postés 8 Date d'inscription mardi 3 octobre 2017 Statut Membre Dernière intervention 5 octobre 2017
5 oct. 2017 à 22:42
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
0
olivivier59 Messages postés 8 Date d'inscription mardi 3 octobre 2017 Statut Membre Dernière intervention 5 octobre 2017
5 oct. 2017 à 22:43
Le contenu "T ouR" venais du fait que je prenais comme référence une cellule copiée avec une liste déroulante
0