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 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 - 27 janv. 2015 à 19:09
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 - 27 janv. 2015 à 19:09
A voir également:
- Countccolor
- Formule excel pour additionner plusieurs cellules - Guide
- Comment faire la somme des cellules colorées sur excel ? - Guide
- Verrouiller cellules excel - Guide
- Nb si en anglais - Guide
- Concatener deux cellules excel - Guide
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
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!
=SOUS.TOTAL(103;A:A)-1
Ou (A:A) correspond à la colonne ou je dois compter mes cellules :)
Merci à lui!
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
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?
Peut-être est parce que le filtre que j'applique n'est pas dans la colonne ou je souhaite compter mes cellules?
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 250
27 janv. 2015 à 11:16
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
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
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
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? :/
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? :/
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 250
27 janv. 2015 à 13:57
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
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
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
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!
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!
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
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 :)
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 250
27 janv. 2015 à 19:09
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
Autre façon : https://www.cjoint.com/c/EABtsPdH8VI
eric