Compter le nb de cellules colorées et filtrées

Résolu/Fermé
PerretteQ Messages postés 26 Date d'inscription lundi 26 janvier 2015 Statut Membre Dernière intervention 4 février 2015 - 27 janv. 2015 à 09:37
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 - 27 janv. 2015 à 19:09
Bonjour,

Je travaille actuellement sur une base de données assez conséquente et j'aimerai pouvoir compter le nombre de cellules colorées en vert contenant la mention v (=validé, mise en forme conditionnelle sur les bons conseil de Eric).
Dans un premier temps j'ai crée une macro pour compter le nombre de cellules colorées en vert, ce qui fonctionne très bien. Mais quand j'applique un filtre à ma feuille de calcul, cela me calcul toutes les cellules vertes de ma colonne malgré le filtre appliqué.
Je viens demander de l'aide pour savoir s'il est possible de compter mes cellules vertes avec un v (Forcément!) après l'application du filtre? (J'ai lu quelques fils de forum mais j'avoues que je n'arrive à saisir toutes les subtilités :/ )
J'aimerai ne pas avoir à rajouter de colonnes car mon tableau est déjà très chargé. Je veux bien passer par un macro, en m'expliquant bien je devrais comprendre (J'espère :) )
Merci d'avance pour ceux qui prendront le temps de me lire et me répondre :)

6 réponses

PerretteQ Messages postés 26 Date d'inscription lundi 26 janvier 2015 Statut Membre Dernière intervention 4 février 2015
27 janv. 2015 à 09:41
En fait je suis un peu béta, Eric m'a également donné une réponse qui je pensais ne pas fonctionner mais a priori si :
=SOUS.TOTAL(103;A:A)-1

Ou (A:A) correspond à la colonne ou je dois compter mes cellules :)

Merci à lui!
0
PerretteQ Messages postés 26 Date d'inscription lundi 26 janvier 2015 Statut Membre Dernière intervention 4 février 2015
27 janv. 2015 à 09:44
RRRnnnnn, après re-vérification en fait non cela ne semble pas fonctionner!
Peut-être est parce que le filtre que j'applique n'est pas dans la colonne ou je souhaite compter mes cellules?
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 212
27 janv. 2015 à 11:16
Bonjour,

Pas fini le soliloque ?
Un exemple : https://www.cjoint.com/c/EABlwqfrbk5

Pour tes questions n'hésite pas à déposer un fichier sur cjoint.com et à mettre le lien fourni dans ton post.
Tu auras des réponses adaptées exactement à ton cas.

eric

0
PerretteQ Messages postés 26 Date d'inscription lundi 26 janvier 2015 Statut Membre Dernière intervention 4 février 2015
27 janv. 2015 à 11:40
Merci de ta réponse ce qui stop donc ma petite parlote :)
Effectivement sur le fichier que tu as joint cette méthode fonctionne très bien et cela m'aurait simplifier la vie! Le schéma que tu proposes dans ton fichier est bien adapté à ce que je recherche. Je pense que si ça fonctionne pas chez moi ça doit être parce que je n'est pas que des cellules vertes et vides (mais plutôt 4 ou 5 mises en formes différentes avec des motifs et des couleurs), cela serait-il probable?
J'ai continué de fouiller et en fait j'ai réussi mon compte en utilisant:

=SI(countCcolor(D:D;$O$2)=0;"v"; countCcolor(D:D;$O$2)) avec dans O2 ma mise en forme pour laquelle je souhaite décompter ma mise en forme. Et ce pour chaque mise en forme.
J'ai créé en amont dans le VBA:

'Function CountCcolor(range_data As Range, criteria As Range) As Long
' Dim datax As Range
' Dim xcolor As Long
'xcolor = criteria.Interior.ColorIndex
'For Each datax In range_data
' If datax.Interior.ColorIndex = xcolor Then
' CountCcolor = CountCcolor + 1
' End If
'Next datax
'
'End Function

Function CountCcolor(range_data As Range, criteria As Range) As Long
Dim datax As Range
Dim xcolor As Long

Application.Volatile
xcolor = criteria.Interior.ColorIndex
For Each datax In range_data
If datax.Interior.ColorIndex = xcolor Then
If datax.EntireRow.Hidden = False Then
CountCcolor = CountCcolor + 1
End If
End If
Next datax

End Function


Je vous rassure je n'ai pas trouvé ça toute seule :)

Cependant, avec tout ces tâtons je ne sais pas si c'est vraiment la meilleure méthode? :/
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 212
27 janv. 2015 à 13:57
Je ne sais pas ce qui pourrait t'empêcher de reproduire mon exemple sur ton fichier, il suffit d'ajouter une colonne avec des "v" et compter ces "v" avec sous.total().
VBA n'est pas nécessaire mais c'est toi qui voit.
De plus ta fonction est volatile donc recalculée à chaque validation (sur une très grande plage ça se ressent à par des ralentissements à la saisie), et t'oblige à faire une action pour qu'elle se ré-évalue.
eric
0

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

Posez votre question
PerretteQ Messages postés 26 Date d'inscription lundi 26 janvier 2015 Statut Membre Dernière intervention 4 février 2015
Modifié par PerretteQ le 27/01/2015 à 14:13
Je met le lien pour que tu es l'exemple de mon tableau.

http://www.cjoint.com/data/0ABosXYvaS5.htm

Du coup c'est la colonne D dont j'aimerai compter les cellules vertes (v), mais du coup il existe des versions obsolètes qui elles sont en vert foncé mais aussi avec le "v".

Peut être que je m'y prend mal pour ta technique, je ne sais pas, mais du coup regarde et dis moi :)
J'aimerai dans la mesure du possible ne pas rajouter de colonne car comme je te l'ai dis le tableau est déjà pas mal conséquent!
0
PerretteQ Messages postés 26 Date d'inscription lundi 26 janvier 2015 Statut Membre Dernière intervention 4 février 2015
27 janv. 2015 à 14:34
En enlevant tous les autres caractères que le caractère "v" alors oui ça fonctionne! Je te remercie et je vais effectivement adopter cette méthode :)
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 212
27 janv. 2015 à 19:09
Ben faut le dire si tu peux avoir différentes valeurs dans ta colonne.
Autre façon : https://www.cjoint.com/c/EABtsPdH8VI
eric
0