Comptage

Y

yoric

Guest
Deux questions de "comptage" :

-J'ai une colonne avec certaines case égales à "oui" et d'autres à "non"
quelle fonction permet de me donner le nombre de "oui" ?

-j'ai une colonne avec certaines cases dont le contenu est écrit en rouge (dans format de cellule : Police)
puis-je faire une formule pour les compter ?

Merci,

il a l'air super ce forum, et les personnes ont l'air compétentes :)
 
C

Christophe

Guest
-J'ai une colonne avec certaines case égales à "oui" et d'autres à "non"
quelle fonction permet de me donner le nombre de "oui" ?

Je ferais ça avec un tableau croisé dynamique

Pour l'autre je vois pas ...
 
Y

yoric

Guest
Merci beaucoup

Christophe, je dois t'avouer ne pas connaître la signification d'un " tableau croisé dynamique ". Comme la structure de mon tableau est déjà existante, je préfère ne pas la retoucher, et compter juste à l'aide d'une formule.

Et justement la formule de Jean-Charles fonctionne parfaitement (NB.SI)
dans mon cas, il m'a suffit de taper la formule =NB.SI(F1:F325; "oui") et ça marche très bien (pour information, ça me donne 111, d'accord ce chiffre n'a pas d'intérêt pour vous, je sors).

Pour ma deuxième question, c'est du même style sauf que le critère est un peu plus compliqué : "du texte dont la couleur est rouge" : est-ce possible, je n'en sait rien, mais ça me serait drôlement utile, je vous dit si je trouve ...


merci encore pour la moitier de la soluce ;)
 
D

Dugenou

Guest
Yoric,

J'ai retrouvé des anciens posts qui donnent une solution à ton probleme. (merci Pascal 76, Myta et Celeda)

Seulement c'est en VBA et je n'y connais pas grand chose.
Tout ce que je peux dire, c'est que tu colles le texte de la fonction dans un module VBA du classeur ou tu veux l'utiliser puis tu utilises la fonction dans une cellule.
Pour l'utiliser tu appelle l'assistant fonction (fx) et tu choisis parmi les fonction personnalisées.
Cette fonction a deux arguments : la zone de recherche
et la cellule modele

Function ColorCountIf(SearchArea As Object, BgColor As Range) As Integer

Application.Volatile True
ColorCountIf = 0
MaCoul = BgColor.Font.ColorIndex
For Each cell In SearchArea
If cell.Font.ColorIndex = MaCoul Then ColorCountIf = ColorCountIf + 1
Next cell

End Function

Je te joins un fichier de démonstration. Il faut re valider la cellule pour faire refaire le calcul

Bon courage
 

Pièces jointes

  • comptage_couleur.zip
    8 KB · Affichages: 20
Y

yoric

Guest
Oooh Dugenou, je te fait un bisou
(j'ai l'esprit en chanson ce soir,
rien que de la bonne humeur, pas de mauvais esprit)
et comment ne pas penser à Thomas Fersen avec un nom pareil
Koike, ce serait plutôt Dudoigt

Je n'en reviens pas que l'on prenne quelques secondes de son temps pour exposer si clairement quelque chose qui me sert tellement
Les forums sont magnifiques, vive l'entraide, vive les sauveurs et les lecteurs. Chapeau bas, et moi... une petite apologize de ne pas avoir retrouvé le post par moi-même.

Grand merci de me l'avoir retrouvé, c'est super sYmPa
J'ai fait d'autre recherches conduisant effectivement à des scripts VB, mais je ne savais pas comment les utiliser et j'était sur le point de me décourager.

Conclusion :
1/ Ne jamais se laisser décourager
2/ Si l'on sens le découragement nous gagner, demander de l'aide
3/ Si l'on en viens à l'étape 2, il y a toujours un peu d'aléat pour la suite, mais toujours en revenir à l'étape 1

PS: explications complémentaires :
Pour tout dire, j'ai suivi les excellentes explication de Dugenou,
j'ai copié le script, j'ai fait Alt-F11, j'ai collé le code
ensuite j'ai inséré la fonction avec l'assistant (fx)
Ca n'a pas tout de suite marché, car l'assistant me disait que la fonction n'avais pas d'arguments, et j'ai du les rajouter "à la main"
Aussi, j'ai un peu "rebidouillé" la fonction, parceque je n'arrivais pas à la faire marcher tel quelle :

Function ColorCountIf(SearchArea As Range, MaCoul As Integer) As Integer

Application.Volatile True
ColorCountIf = 0
For Each cell In SearchArea
If cell.Font.ColorIndex = MaCoul Then ColorCountIf = ColorCountIf + 1
Next cell

End Function

Et là, ça marche du tonerre, je suis heureux :)
merci, je v pas en dormir la nuits,
ou je vais en faire des rêves de paradi
ou je v prier St Dugenou toutes les nuits pendant une semaine
ou je vais vénérer le site http://www.excel-downloads.com/
ou je sais pas, en tout cas merci à tous
c super cool
J'ai posté une double question ce matin,
g ma double réponse ce soir
à peine croyable...

BISOU DUGENOU :X
 
D

Dugenou

Guest
ah ben dis donc, si on avait des remerciements comme ça à chaque fois qu'on fait une réponse, on passerait sont temps à faire des réponses !!

Un détail m'échappe : la ligne "MaCoul = BgColor.Font.ColorIndex" a disparu dans ta fonction et c'est ce qui permet de définir la couleur à compter ... ou alors il faut avoir "If cell.Font.ColorIndex = MaCoul.Font.ColorIndex Then ..."

Pour info je te donne le post ou j'ai trouvé tout ça :
http://www.excel-downloads.com/html/French/forum/read.php?f=1&i=68107&t=68048

Cordialement
 
Y

yoric

Guest
lol Dugenou ;)

En fait, j'ai changé la nature des arguments (SearchArea As Range, MaCoul As Integer), en passant directement le numéro d'index de la couleur à compter en 2-ième arg (par exemple : 3 pour la couleur rouge)

mais c'est moins bien à plusieurs égards. Il vaut mieux avoir une cellule de référence, plutôt qu'un n° de couleur, donc je vais revenir à la version originale.

J'ai voulu le mettre en application aujourd'hui depuis mon bureau, mais ça n'a pas voulu marcher car Excel depuis mon boulot me dit que les macros ne sont pas activées, et il ne trouve même pas ma fonction personnalisée dans l'assistant :(

Depuis chez moi, ça marche. Mais je ne sais pas où est-ce qu'il faut activer / désactiver les macros, j'ai pourtant cherché, mais sûrement pas assez bien O-O.

Je renouvel un merci, parceque j'ai appris des choses

Et, c'est fou ce qu'il est hyper-actif ce forum, à en voir tous les posts en un seul jour (et dire que j'étais venu ici au pifo-google-mètre ça ne m'a pas trahi :)
 
D

Dugenou

Guest
Peut qu'être qu'à ton boulot, les grands penseurs de l'informatique ont désactivé les macros à tout le monde ou bien que l'antivirus de ton boulot inhibe les macros. Peut être aussi que tu utilises office xp au boulot et office 97 chez toi. Mes collègues disent que "la politique de sécurité de office xp est incompatible avec les macros créées dans les versions précédentes"

Encore merci pour ton petit mot : j'ai pu montrer à ma femme que je ne restais pas devant mon écran juste pour mon plaisir mais que ça rendait service à d'autres qui le manifestent haut et fort.

Bon courage pour la suite

tchô
 
Y

yoric

Guest
Effectivement, au boulot ce n'est pas moi qui administre ma machine, et j'ai notamment un antivirus. Chez moi, ça me propose au lancement d'Excel si je veut désactiver / ou activer les macros, pas au boulot. Chez moi, je suis sous MacOs X, au boulot je suis sous Windows 98. Je ne sais pas les versions exactes, mais bon, on vas pas rentrer dans tous les détails ;)

Enfin, ma base de feuilles excel comporte près de deux mille cellules à compter, et de plusieurs manières. J'exploite ensuite ces résultats pour faire des statistiques sous forme de graphiques. (en l'occurence ces stats concernent le contenu d'un site internet assez chargé). Et puis par la suite, j'aurais à convertir des feuilles excel en base Access, alors là, je me sens tout de suite un peu plus apte à faire plus de choses.

On ne vas pas jouer au ping-pong en se remerciant pendant des années, mais ça m'a fait vraiment plaisir d'avoir la réponse exacte que je cherchais en si peu de temps. Je tiens à le préciser, parceque ça fait tellement plaisir, et oui, quand moi aussi il m'arrive d'aider les autres, je sais qu'une des plus grandes satisfactions et de voir combien ça fait plaisir à l'autre.

Enfin bref, ne m'étalons pas, ce n'est pas l'objet du forum :)

bonne contiNuation


PS: si tout le monde s'aidait, le monde avancerais plus vite. Si tout le monde était connecté et pouvait s'aider, c'est presque la réalité...
 

Discussions similaires

Statistiques des forums

Discussions
314 190
Messages
2 106 988
Membres
109 733
dernier inscrit
chardou