Calcul nbre occurences d'une valeur dans plage sur 53 feuill

Bonjour au forum,

Je cherche une formule pour pouvoir calculer les statistiques du nombre de postes fait par chacun de mes collaborateurs sur l'année.

J'ai une feuille statistiques où sont les formules pour effectuer ce calcul et 53 feuilles correspondantes au nombre de semaine de l'année (là où les données sont donc rentrées).

J'arrive à mes fins pour le moment avec ce type de formule :

=SOMMEPROD(NB.SI(INDIRECT("'Semaine "&LIGNE($1:$53)&"'!C15:I15");"IH - R*"))

Cette formule compte le nombre de fois où COL1 (collaborateur 1, dont les postes sont renseignés de C15 à I15) a travaillé au poste commençant par "IH - R*" sur les 53 feuilles commençant par "Semaine *", mais je ne suis pas totalement satisfait.

En effet, l'ordre des collaborateurs peut changer, ce qui fausse évidemment le compte...

Je cherche donc une formule qui se traduirait ainsi :

"Recherche COL1 dans la colonne B, puis compte le nombre de fois où il a travaillé au poste dont le nom commence par "IH - R*" (donc dans les colonnes adjacentes au résultat de la précédente recherche), et ce, sur les 53 feuilles dont le nom commence par semaine"

Je ne suis pas persuadé que ce soit possible, mais je prends volontiers tous vos conseils !

NB : le fichier exemple ne contient que les 5 premières semaines pour une question de poids de fichier

Merci d'avance !

Salut,

Je te propose une solution par macro.

Dans le fichier ci-joint, si tu cliques sur le bouton mis en place, la plage de la feuille statistique C12:Wxxxx est effacée et réactualisée en fonction des modifications sur les feuilles des semaines. Il se peut qu’avec 53 semaines, ça prenne quelques secondes.

L’inscription ‘’Panel’’ de la cellule D25 de la feuille Semaine 1 n’est pas trouvée car elle ne correspond pas exactement à la valeur inscrite dans la cellule E11 de la feuille Statistiques. Ai-je bien compris que dans les feuilles des semaines tu peux avoir deux inscriptions différentes qui doivent être additionnées dans la même colonne ? Y a-t-il d’autres cas semblables à ‘’Panel’’ et

‘’Panel +’’ ?

Faudrait-il contrôler que tous les textes trouvés dans les 53 feuilles des semaines aient leur correspondance sur la feuille Statistique ou il est impossible que les textes sur les feuilles des semaines soient incorrects (y compris un espace de trop par exemple) ?

Pour l’exemple, j’ai mélangé un peu les collaborateurs sur la feuille Semaine 1.

Cordialement.

Bonjour Yvouille,

Merci beaucoup pour ta réponse !

Pour répondre à tes questions :

  • l'idéal serait de pouvoir dissocier "Panel" et "Panel +", qui sont deux postes identiques mais avec des horaires différents.
  • Il arrive très régulièrement que les collaborateurs notent directement dans les horaires des compléments, comme par exemple :

* heures en moins : exemples en Semaine 1 / C29 et Semaine 2 / E28

* fusion de poste : exemple en Semaine 3 / C19 (où le poste à comptabiliser est toujours celui situé en 1er, dans ce cas là 02)

C'est pour ça que mes formules ne prenaient en compte que les premiers caractères de la cellule, et que donc je ne pouvais pas dissocier les postes Panel et Panel + (ce qui n'est pas non plus catastrophique).

Avec toutes ces variables, je ne sais pas si c'est adaptable dans ton code (je suis plutôt novice en VBA), mais en tout cas, ce que tu m'as transmis est déjà remarquablement efficace !

Merci de ton aide !

Salut,

Avec les macros Excel, il n’y a pratiquement rien d’impossible, le problème étant plutôt de se comprendre.

Tu dis qu’avec tes formules tu recherchais tes données à l’aide des premières lettres des mots et dans tes exemples, parfois c’est la fin des références qui sont modifiées, parfois les débuts !

Donc, basé sur l’exemple Type / Type +, à l’aide de ‘Type’, on pourrait retrouver les inscriptions suivantes :

02 / Type

02 / Type +

Type – 30 minutes

Type + - 30 minutes

02 / Type + - 30 minutes

etc.

Est-ce ce que tu désires ?

En ce qui concerne Panel / Panel +, je n’ai pas très bien compris tes explications. Ne perds pas de temps à expliquer ce que tu faisais, mais explique plutôt le plus clairement possible ce que tu désires.

A te relire.

Amicalement.

Re,

J'ai effectivement mal dû m'exprimer, excuse moi.

Yvouille a écrit :

Donc, basé sur l’exemple Type / Type +, à l’aide de ‘Type’, on pourrait retrouver les inscriptions suivantes :

02 / Type ---> il faut compter "02"

02 / Type + ---> il faut compter "02"

Type – 30 minutes ---> il faut compter "Type"

Type + - 30 minutes ---> il faut compter "Type +"

02 / Type + - 30 minutes ---> il faut compter "02"

Pour résumer, il faut compter le poste qui a été fait le jour J, soit celui positionné en 1er.

Pour Panel / Panel +, c'est exactement pareil que tes exemples ci-dessus :

02 / Panel ---> il faut compter 02

Panel -1h ---> il faut compter Panel

Panel + - 30 minutes ---> il faut compter Panel +

02 / Panel + ---> il faut compter 02

Est-ce plus clair ?

Merci encore pour ton aide

Wow, je viens de comprendre une chose : c’est que ‘02’ est un ‘Poste’ comme un autre de la ligne 11 de la feuille ‘Statistique’. J’ai cru que tu voulais dire que lorsque ça commençait par 02 il fallait prendre deux fois une certaine valeur.

Ce point étant un peu plus clair, je me rends compte que l’on aura de la difficulté à faire la différence entre les ‘Postes’ à prendre en compte vu votre manière de travailler.

S’il fallait par exemple toujours tenir compte du même nombre de caractères pour déterminer le poste à traiter (par exemple les 7 premiers caractères de ‘Salle01 Bidule’, ‘Salle22 Truc’, Salle99 Chose’) ou si un signe spécial séparait la partie à tenir compte du reste (par exemple avec le signe \ ’02 \ Type’ concernerait ‘02’ ; ‘Type + \ - 30 minutes’ concernerait ‘Type +’, etc.) ça serait plus simple.

Est-il donc envisageable de modifier votre manière de faire dans ce but-là ? Dans le cas où le signe \ par exemple pourrait être utilisé, on pourrait par exemple dire que s’il y a un \, on considère tout ce qu’il y a devant et que s’il n’y en a pas, on prend tous les caractères (‘DIS 1’ concernerait ‘DIS 1’).

Si cette possibilité d’utiliser un signe spécial pour séparer la partie à tenir compte du reste n’est pas réalisable, je ne sais pas trop comment nous y prendre. En établissant une sorte de liste de concordances ou que sais-je d’autre ??

Amicalement.

J'imaginais bien que ça allait être compliqué

Je ne peux malheureusement pas modifier la manière de rentrer les données, car tous les collaborateurs utilisent le fichier, et, par expérience, je sais que ce sera le bordel...

Est-il possible d'adapter ta 1ère solution comme ceci :

  • Si les 1er caractères sont "IH - R", alors compter dans IH - Routine
  • Si les 1er caractères sont "02", alors compter dans 02
  • etc

ou est-ce trop compliqué ?

Sinon, la solution du caractère spécial de séparation pourrait me convenir, même si je préfèrerais la version ci-dessus (toujours pour le même problème, les collaborateurs vont râler, oublier, pas comprendre l'importance de mettre ce caractère, etc...)

Qu'en penses-tu ?

Je crois que je comprends un peu mieux ton idée et que j’ai trouvé une solution.

Dans le fichier ci-joint, je n’ai laissé des données que sur la feuille Semaine 1 afin que ce soit plus facile à effectuer les contrôles, mais il est bien entendu que ça continue à jouer pour les autres feuilles.

Regarde un peu toutes les possibilités que j’ai simulées sur cette feuille et le résultat obtenu. Si le texte n’est pas exact, comme dans la cellule C39 de la Semaine 1, ça coince !

Autrement mon code fait à peut-prêt ceci : Si les deux premières lettres du ‘Poste’ traité sont ‘IH’, il tient compte des 6 premiers caractères (‘IH – R’ ou ‘IH – U’) ; si les deux premières lettres du ‘Poste’ traité sont ‘DI’, il tient compte des 5 premiers caractères (‘DIS 1’ ou ‘DIS 2’) ; sinon il ne tient compte que des deux premiers caractères (‘02’ = ‘02’ ; ‘Panel’ ou ‘Panel +’ = ‘Pa’).

Si le résultat obtenu n’est pas celui attendu, explique moi pourquoi afin de pouvoir trouver la correction nécessaire.

Cordialement.

Salut Yvouille,

C'est impressionnant

Il y a juste 2 petits détails que j'aimerais pouvoir améliorer :

  • la reconnaissance du collaborateur : qu'elle se fasse sur les initiales plutôt que le nom complet (donc colonne B plutôt que colonne A, à savoir que les initiales de nos collaborateurs ont TOUJOURS 4 caractères, je ne sais pas si cela a une importance pour toi)
  • pour vraiment que ce soit parfait, il faudrait pouvoir dissocier ces 3 postes : "IH - Routine", "IH - Urgence" et "IH - Routine / IH - Urgence"... C'est en effet la seule fusion de poste que j'aimerais pouvoir comptabiliser, mais je viens de me rendre compte que je m'étais trompé de version de fichier pour l'exemple, et qu'il manquait ce poste dans l'onglet Statistiques dans cette version... Je suis désolé ! J'imagine que ça commence à devenir prise de tête pour toi donc au pire, ce n'est pas catastrophique...

Sinon pour tous les autres postes, c'est nickel, exactement ce qu'il me fallait

NB : j'ai ajouté le poste fusionné IH - Routine / IH - Urgence dans l'onglet Statistiques dans le fichier joint (toutes mes excuses encore...)

Re,

Maintenant que j’ai bien assez bien compris ta manière de travailler, ces mises au point sont assez simples.

Pour traiter les initiales au lieu des noms, pas de soucis.

Pour le poste ‘IH - Routine / IH - Urgence, ça sera toujours ainsi ou parfois ‘IH – Urgence - IH - Routine’, parfois ‘IH - Routine / IH – Urgence / DIS 1, parfois ‘DIS 1 / IH - Routine / IH – Urgence’, etc. ?? Soit l’une, soit l’autre de ces possibilités serait assez simple à traiter.

J’ai vu que tu avais ajouté des données qui ne sont pas répertoriées par mon code (plage E32:F32 de la feuille ‘Semaine 1’) : Faudrait-il faire une liste quelque part de ces données non comptabilisées sur la feuille ‘Statistiques’ ?

Absent d’ici 1 heure pour quelques jours, je ne pourrai pas traiter la suite rapidement.

Amicalement.

Re,

Pour le poste fusionné des "IH - Routine / IH - Urgence", ce sera toujours de cette manière (mais il pourrait y avoir des "-1h" ou même un "02" devant).

Juste pour que tu saisisses mieux, tout ce qu'il y a dans la feuille Statistiques de C11:X11 sont des postes, donc à compter individuellement.

Pour tout ces postes, il est possible d'avoir des annotations du genre "- 1h" ou "- 30 min" après le nom du poste

Par contre, il n'y aura jamais de fusion d'autres postes (à part pour celui "IH - Routine / IH - Urgence"). Il n'y aura par exemple jamais "Type / Panel" ou "IH - Routine / DIS 1", etc.

Les codes "RE", "CH", "01", "36" et "02" sont des codes d'absences (maladie, vacances, récup, fériés, etc...), donc il ne seront jamais suivi d'autre chose (genre "- 30 min"), SAUF pour le code "02", qui correspond à "Maladie", qui est lui quasiment toujours suivi du poste prévu initialement (ex : "02 / Type" signifie que le collaborateur prévu au poste "Type" ce jour est malade, et sera donc à compter dans "02")

Nrev74 a écrit :

J’ai vu que tu avais ajouté des données qui ne sont pas répertoriées par mon code (plage E32:F32 de la feuille ‘Semaine 1’) : Faudrait-il faire une liste quelque part de ces données non comptabilisées sur la feuille ‘Statistiques’ ?

Je n'ai pas bien compris ce que tu veux dire par là, car ces postes "Soir IH" et "SXM" sont bien dans la feuille Statistiques et sont bien comptabilisé au lancement de la macro ?

J'espère avoir répondu à tes questions

Merci encore pour ton aide, et aucun problème pour l'attente, c'est déjà très généreux de passer autant de temps sur mon problème...

A te relire,

Bonjour,

Nrev74 a écrit :
Nrev74 a écrit :

J’ai vu que tu avais ajouté des données qui ne sont pas répertoriées par mon code (plage E32:F32 de la feuille ‘Semaine 1’) : Faudrait-il faire une liste quelque part de ces données non comptabilisées sur la feuille ‘Statistiques’ ?

Mais non, tu dis des bêtises ; c’est moi qui ai écrit cela

Et effectivement que je ne suis gouré ! Comme je n’avais pas encore remarqué ces postes "Soir IH" et "SXM", j’ai cru que c’était des nouveaux textes. Donc tout est en ordre de ce point de vue-là.

Nrev74 a écrit :

(mais il pourrait y avoir des "-1h" ou même un "02" devant)

Aie ! Il n’a jamais été question, selon moi, d’avoir ce genre de textes devant ! Je pense que tu te trompes, puisqu’un bout plus loin tu parles d’avoir ce genre de textes derrières. Dans tous les cas, pour l’instant, de tels textes ne seraient pas traités (voir l’exemple en E17 de la feuille Semaine 1 du nouveau fichier ci-joint).

Pour le reste, je pense que le fichier ci-joint correspond à ton attente.

Amicalement.

Bonjour,

Yvouille a écrit :

Mais non, tu dis des bêtises ; c’est moi qui ai écrit cela

Effectivement, je n'ai pas compris comment j'ai fais pour que ça mette mon nom en citation...

Yvouille a écrit :

Je pense que tu te trompes

Effectivement, je me suis gouré à mon tour

Les -1h ou -30 etc sont toujours derrière, donc tout va bien !

Yvouille a écrit :

Pour le reste, je pense que le fichier ci-joint correspond à ton attente.

Oui, c'est parfait et exactement ce que je cherchais !

Il n'y a que le code qui efface les stats au début de la procédure qui ne prend pas en compte la colonne X mais c'est corrigé

Merci encore pour ton aide !

Excellente continuation à toi et peut-être à bientôt sur le forum ou sur une terrasse pour déguster une Petite Arvine

Tant mieux si tu as ta solution Excel.

D'un autre point de vue, un gars qui connait la Petite Arvine ne peut être que foncièrement sympa Tu te situes dans le "Soixante quatorze", donc tu es presque suisse, non ? Je suis né à 110 kilomètres de St-Gingolphe, dans le Val d'Anniviers.

J'adore le Valais, et ses vins aussi, presque autant qu'un Valaisan

Je suis du "Septante quatre" effectivement, à 2km de la frontière avec Genève, et j'y suis assez régulièrement étant donné que ma conjointe y vit et que j'y travaille.

Donc je suis presque Suisse oui, encore faut-il accepter que les Genevois sont bien des Suisses

Rechercher des sujets similaires à "calcul nbre occurences valeur plage feuill"