XL 2010 Détecter les périodes de <44 h. libres pendant 7 jours

Aloha

XLDnaute Accro
Bonjour,
Le titre est un peu compliqué; je l'explique.
Le contexte: des salariés ont droit à 1 jour de congé supplémentaire lorsque pendant 7 semaines consécutives ou non ils ne sont pas libres pendant 44 h. de suite par semaine.

Ils remplissent chacun une fiche mensuelle où ils saisissent toutes les heures en relation avec le contrat de travail, heure par heure, en inscrivant dans les cellules le type d'heure : travail ("X"), congé ("C"), maladie ("M"), heures supplémentaires (6 sortes, de "S1" à "S6"), réunions ("R"), etc. Ces fiches sont regroupées dans un classeur dont le nom se compose du nom du service, du mois et de l'année ([Mois] [Année] [SERVICEX].XLSX)

Admettons que je sois arrivé à regrouper ces données mois par mois et salarié par salarié (pour l'instant je le simule dans le fichier ci-joint; je dois m'occuper de ce problème par après) dans une base de données, en y copiant (de préf. par VBA, sinon par formule), les données requises de toutes les fiches de tous les mois et de tous les services.

Ce qui donne, en gros, un fichier comme celui qui est ci-joint.

J'ai donc compté jour par jour dans les fichiers remplis par les salariés les cases horaires (00:00 à 24:00, puisque le service fonctionne nuit et jour tous les jours de l'année) où il y a une inscription (colonne D) et j'ai retranché ce chiffre de 24, ce qui me donne donc les heures libres par période de 24 heures (colonne E). La colonne F tient compte de la date d'engagement et ne reprend les valeurs de la colonne E que pour la période du contrat de travail, sinon "HC" (hors contrat) est inscrit dans la case correspondante.

Il s'agit donc à présent de détecter, 7 jours par 7 jours, les périodes où dans la colonne F l'addition de 2 cellules superposées ne donne pas au moins 44, en commençant, pour déterminer les périodes de 7 jours, par le 1er janvier, resp. par la date d'engagement si le salarié a été engagé pendant l'années en cours,
 

Pièces jointes

  • 44 h. libres.xlsx
    18 KB · Affichages: 50

Aloha

XLDnaute Accro
Bonsoir,

FR32: tu as raison, je me suis trompé, et probalement autre part aussi; c‘est incroyable, mais j‘avais totalement oublié que le temps libre doit être ininterrompu. Cela change tout. J‘ai revu mon fichier simulé.

Malgré ces corrections dans les saisies manuelles, les résultats des formules ne sont toujours pas exacts; ainsi le 11.1. le premier cycle est accompli, alors que les formules mettent le chiffre 1 seulement un jour plus tard.

Pour répondre à ta dernière question, qui se situe maintenant dans un autre contexte: si la ligne 24 est vide il y a 5 jours de travail et 2 jours libres continus, donc pas de cycle.

Bonne nuit
Aloha
 

Pièces jointes

  • Congé supplémentaire <44h libre.xls
    284 KB · Affichages: 18
Dernière édition:

CISCO

XLDnaute Barbatruc
Bonsoir

Cf. en pièce jointe...

J'ai essayé de prendre en compte les heures de travail à cheval sur deux journées, d'où des formules compliquées dans les colonnes FH et FI.

Je n'ai pas tenu compte des lettres dans la plage FV4:FV9, mais comme les formules ne prennent en compte que les X...

Il y a certainement des choses à revoir, à préciser, par exemple, doit t'on recommencer le comptage après une période de congé importante...

S'il y a des problèmes, prière de donner des exemples expliquant bien la situation.

@ plus
 

Pièces jointes

  • Congé supplémentaire _44h libre ter.xls
    382 KB · Affichages: 31

Aloha

XLDnaute Accro
Bonsoir,
Chapeau! Un sacré exploit!
Avec une petite modification dans FP : diviser par 8 au lieu de 7 (il faut 8 périodes de, 7 jours et non pas 7) le résultat de tes formules correspond à mes résultats manuels.
Un manque est que tu comptes uniquement les X - j‘aurais dû ajouter d‘autres saisies assimilées à des heures de travail et donc comptées, comme R pour réunion, F pour formation, M pour maladie, et beaucoup d‘autres -; la solution est de compter toutes les saisies à l‘exception de celles énumérées dans FW qui sont assimilées à des heures libres.

Une situation non prévue dans l‘exemple mais que tes formules maîtrisent quand-même, est celle où le salarié commence seulement à travailler au cours de l‘année. Comme les jours situés avant la date d‘entrée en service sont considérés comme du temps libre il y a beaucoup d‘heures qui s‘accumulent en FN mais comme elles ne sont pas comptées cela fonctionne quand-même.

Un petit problème consiste dans le fait que le dernier jour de travail les formules donnent des erreurs, mais ce problème est sûrement maîtrisable.

Une question qui reste c‘est celle de savoir à partir de combien de jours de temps libre, du congé normalement, il faut commencer une nouvelle période de 7 jours le premier jour de travail après le congé.
Je n‘y vois pas clair, les textes n‘en disent mot et c‘est donc une affaire d‘interprétation. Je vais en parler jeudi à la direction.

Bonne nuit et merci beaucoup. Tu es un sacré as en matière d‘Excel!
Aloha
 

CISCO

XLDnaute Barbatruc
Bonjour

Dans le dernier fichier, il faut copier AF6 pour le coller au-dessus dans AF5. Il faut aussi changer la formule dans la colonne FN, car il y avait au moins une erreur, que montrait le 29 faux dans FN11 (on devrait avoir un 11). Je corrige dans la pièce jointe du post #47.


@ plus
 
Dernière édition:

CISCO

XLDnaute Barbatruc
Bonjour à tous

Bonsoir,
Chapeau! Un sacré exploit!
...
Un manque est que tu comptes uniquement les X - j‘aurais dû ajouter d‘autres saisies assimilées à des heures de travail et donc comptées, comme R pour réunion, F pour formation, M pour maladie, et beaucoup d‘autres -; la solution est de compter toutes les saisies à l‘exception de celles énumérées dans FW qui sont assimilées à des heures libres.
...
Aloha

J'ai mis dans la colonne FW les lettres à prendre en compte comme du temps non libre, donc comme X. Dans la colonne FX, j'ai laissé les lettres à ne pas prendre en compte, mais cette plage ne sert à rien dans les formules dans l'état actuel. J'ai modifié les formules dans les colonnes AE, AF, FM et FN en conséquence.


Regarde bien les résultats de la colonne FN car je ne suis pas totalement certain de la formule...

@ plus
 

Pièces jointes

  • Congé supplémentaire _44h libre quatre.xls
    418.5 KB · Affichages: 37
Dernière édition:

Aloha

XLDnaute Accro
Bonjour,

Ta solution est presque parfaite et je croyais déjà que je m'étais trompé dans mes calculs manuels, mais malheureusement j'ai détecté un manque dans les formules.
Je dois avouer que les formules dans FN me dépassent à premier abord; j'ai comparé les cycles définis en FO avec mes cycles manuels.
La situation que les formules ne maîtrisent pas est celle du cycle allant du 5. au 11.2. qui débute par 1 j.l. suivi de 5 j.t. ou assimilés, suivis d'un j.l.
Des deux conditions l'une est remplie: >=44 h. libres, mais la deuxième non, celle que le temps libre doit être ininterrompu.
Le 4.2. est libre aussi, mais il appartient au cycle précédent et ne joue donc pas.

A+
Aloha
 

CISCO

XLDnaute Barbatruc
Bonjour

Dans le précédent fichier, la période du 5/2 au 11/2 est considérée comme comportant un arrêt de plus de 44 h à cause des lignes avec des F (lignes 42 à 44) car cette lettre n'est pas dans la plage FW4:FW9, ce qui donne 86:00 h de repos. Si ces F correspondent à du "travail", il suffit de rajouter un F dans cette plage FW4:FW9.

D'ailleurs, au sujet de cette plage... Si tu as beaucoup de lettres possibles correspondant à une occupation équivalente à du travail, tu risques de devoir rallonger cette plage. Il te faudra alors remplacer tous les AW$4:AW$9 par une plage plus grande dans toutes les formules. Comme cela n'est pas très pratique, le mieux serait de nommer cette plage dans le gestionnaire de noms avec une définition dynamique. Cela te donnerait une plage dont la hauteur augmenterait automatiquement en fonction de tes besoins, sans avoir besoin de modifier les formules à chaque rajout.

@ plus
 

Aloha

XLDnaute Accro
Rebonjour,

Tu as raison; cela tient aux F (formation). Si je l'ajoute dans la liste alors les calculs sont corrects! Chapeau! Je ne pensais pas qu'une solution uniquement basée sur les formules serait possible. Cela devrait alors être la solution recherchée.
J'espère ne pas avoir trop de problèmes pour l'intégrer dans le fichier réel. Un deuxième défi majeur, à savoir exprimer les jours de congé supplém. en heures (le nombre d'heures dépendant de la tâche hebdomadaire et des changements de tâche possibles au cours de l'année), je pense et espère avoir la solution.

Ce que tu dis dans ton 2e alinéa, j'en suis conscient; il suffit en réalité de rallonger l'aire de la liste assez vers le bas, ou alors, comme tu le prônes, la nommer.

Ce qui est bizarre, c'est que, lorsque j'ouvre le fichier que tu as joint, Excel prétend qu'il contient des macros. Lorsque j'accepte d'ouvrir avec les macros et que fais afficher les prétendues macros, il n'y en a pas du tout!

A+
Aloha
 

CISCO

XLDnaute Barbatruc
Bonjour

Rebonjour,
... Ce qui est bizarre, c'est que, lorsque j'ouvre le fichier que tu as joint, Excel prétend qu'il contient des macros. Lorsque j'accepte d'ouvrir avec les macros et que fais afficher les prétendues macros, il n'y en a pas du tout!
A+
Aloha

Je n'ai pas ce message lors de l'ouverture de ce fichier... Et effectivement, il ni a pas de macro dedans. Bizarre.

@ plus
 

Aloha

XLDnaute Accro
Bonjour,
J'ai ce message chaque fois que j'ouvre le fichier.

J'ai commencé à transférer les formules dans mon fichier réel.

Premier problème, alors que la partie concernée est exactement pareille à celle de mon fichier exemple: la formule du 1er jour, en AE5, ne donne pas de résultat; celle en AE6 calcule correctement.

Je ne comprends pas du tout pourquoi le résultat est vide en AE5.

La différence entre les 2 formules est que, les cellules situées au-dessus de la cellule AE5 contenant la formule (AC4 et AF4) ont un contenu différent de celles au-dessus de AE6 (AC5 et AF5):
AC4: la dernière heure de la journée: 24; AF4: vide
AC5: dernière cellule du jour précédent (23:00 à 24:00); AF5: heure fin du jour précédent.
Le fait est que, malgré cela, dan le fichier sur lequel tu as travaillé, la formule en AE5 fonctionne!

Aurais-tu une idée à quoi cela pourrait tenir?

A+
Aloha
 

CISCO

XLDnaute Barbatruc
Bonjour

1) Au sujet de ton problème, dans ton nouveau fichier, est-ce que tu as bien rempli la plage FW4:FW9 avec les lettres correspondant à du travail ?

2) Dans la colonne FM, j'ai toujours fait commencé la période de 7 j soit à 00:00, soit lors du début du travail. Il faudrait peut être voir ce que cela donne si on prend systématiquement 00:00.

@ plus
 

Aloha

XLDnaute Accro
Rebonjour,

ad 1):
affirmatif; j'ai nommé la plage Codes_comptés; les symboles qui s'y trouvent: F (formation), X et M (maladie).
ad 2):
Je ne suis pas encore aux formules en FM; je dois d'abord faire fonctionner celles des colonnes précédentes.
Je pense qu'il faut légèrement modifier la formule du 1er jour du mois, celle en AE5, puisqu'il n'y a pas de jour avant.
Mais je ne comprends pas pourquoi elle fonctionne dans le fichier exemple, identique au fichier réel en ce qui concerne les références de cette formule.

A+
Aloha
 
Dernière édition:

Aloha

XLDnaute Accro
Les formules en FM posent problème: la formule en F5 donne 01/01/17 00:00 au lieu de 01/01/17 05:00.
Et vers le bas elles affichent la même date et heure.

Bonne nuit
Aloha

------------------MISE A JOUR ------------------
Désolé, j'ai posté trop vite: je m'étais trompé en saisissant la formule.
Par contre, je suis bloqué dans la colonne FN dont les formules affichent toutes FAUX
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 207
Messages
2 086 240
Membres
103 162
dernier inscrit
fcfg