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
Bonjour,

L'exemple du fichier joint commence par des situations extrêmes, où il y a bien 2 jours libres de suite, mais les jours libres sont à cheval sur deux périodes: ainsi, le 7. et le 8.1. sont bien libres mais le 7.1. êst le dernier jour de la première période de 7 jours, et le 8.1. le premier jour de la 2ème. Idem pour le 14. et le 15. et pour le 21. et le 22.1. Le 28. et le 29. la situation se reproduit, mais là il y a le 1.2. de libre ainsi que le 2.2. qui contient 2 PE, des code correspondant à la récupération d'une heure d'un certain type prestée de trop et non compté.

Normalement ces situations ne doivent pas se produire avec une telle intensité, puisque la personne qui fait le plan de travail y fera attention.

J'espère que mes explications constituent une réponse satisfaisante à ta question.
Bonne journée
Aloha
 

Pièces jointes

  • Feuille annuelle 13.12.2017.xls
    670.5 KB · Affichages: 15

CISCO

XLDnaute Barbatruc
Bonsoir

Ok pour l'exemple correspondant au fichier en pièce jointe. Mais comment est-ce qu'on ferait ce calcul si on devait attribuer 2 j de congés supplémentaires cette année là, par ex avec le 1er jour de congé dans la seconde période, et le 2nd dans la 3ème période ?

@ plus
 

Aloha

XLDnaute Accro
Bonsoir, ou plutôt bonjour,
Je suppose que tu parles de la transformation des jours en heures.
Le premier jour, survenant dans la 2e périodecorrespond donc à la situation de l‘exemple.
Pour le 3e jour le calcul se fait uniquement sur la 3e période; sans avoir un exemple sous les yeux, il me semble que dans ce cas 1 jour équivaut à la relation entre la tâche hebdomadaire et la base de 40 heures: tâche de 20 heures: 1 jour = 8/40*20 = 4. Dans le cas de la dernière période on peut négliger la durée puisqu‘elle correspond au total des jours jusqu‘au 31.12.
Bonne nuit
Aloha
 
Dernière édition:

CISCO

XLDnaute Barbatruc
Bonjour

Toujours pour ce qui est du nombres d'heures à accorder, je voyais plutôt quelque chose au proprata de nombre d'heures travaillées pendant la période à l'origine du jour de congé supp (entre deux jours de congés supp successifs). Je m'explique (cf. pièce jointe) :
* le dernier congé supp a été accordé le 15/11/2016.
* le nouveau jour de congé supp est accordé le 9/5/2017 (Cf. ligne 144), après donc 25 semaines et 661 h de travail, ce qui fait une moyenne hebdomadaire de 661/25 = 26:26. L'employé bénéficie donc le 9/5/2017 de 26:26/40*8 = 5:15 (cf. dans AM144).
Ce système ferait qu'un employé ayant travaillé 20 h par période de 7 jours, en moyenne, pendant la période "source" aurait le droit à 4 h de congé supp, un autre ayant travaillé 40 h en moyenne aurait le droit à 8 h de congé supp...

Ce n'est pas à moi de décider de cela. Il faut juste que tu m'expliques bien la méthode utilisée pour faire ce calcul.

@ plus


P.S : Les colonnes AJ, AK et AL ne sont pas forcément indispensables. Elles sont là pour le moment pour mettre en évidence les calculs intermédiaires. La formule dans la colonne AM n'est pas complète pour le moment. Elle n'est là que pour faire le calcul correspondant à cet exemple. Si on adopte une méthode de ce type, il faudra trouver une formule plus générale, recherchant la position du dernier 1 dans la colonne AI.
 

Pièces jointes

  • Feuille annuelle 13.12.2017 21.22.xls
    693 KB · Affichages: 26

Aloha

XLDnaute Accro
Bonjour,
Les valeurs dans H6:H8 correspondent bien à la tâche hebdomadaire en heures.
Je suis en train de mettre des formules pour calculer les heures pour un maximum de 3 jours supplémentaires par an. Comme c'est assez compliqué, je mettrai un peu de temps et je posterai le fichier dès que j'aurai fini.
Bonne journée
Aloha

------------------------------------------------
Update: je n'avais pas vu ton dernier message, ce qui est bizarre puisqu'il y a tout de même 15 min. entre ton dernier message et le mien!
 
Dernière édition:

Aloha

XLDnaute Accro
Bonjour,
Je ne pense pas qu'il faut calculer comme tu le proposes.
Le principe est simple, mais la mise en oeuvre très compliquée, voilà pourquoi je n'ai toujours pas posté le fichier annoncé.
Hier, je me suis mis à construire des formules avec plein de "si" dans lesquels je me suis pris les pattes et j'ai abandonné.
Ce matin j'ai repris le travail et j'ai réussi à confectionner les formules qui, à première vue, fonctionnent comme il faut.
Voir le fichier ci-joint. Il faudra encore que je les transpose dans le fichier réel.
Bonne journée
Aloha
 

Pièces jointes

  • Répartiotion des jcs en hcs.xlsx
    11.3 KB · Affichages: 29
Dernière édition:

Aloha

XLDnaute Accro
Bonjour,
Voici le fichier annuel dans lequel j'ai intégré les formules. Les dates des périodes et la tâche hebdomadaire sont affichées par des formules renvoyant à un autre fichier (problème avec INDIRECT() non résolu: le fichier doit être ouvert). Je les ai remplacées par des valeurs dans le fichier joint.
Bonne journée
Aloha
 

Pièces jointes

  • Feuille annuelle valeurs 16.12.2017.xls
    685.5 KB · Affichages: 20

Aloha

XLDnaute Accro
Bonjour,

Il s'agit des cellules B6:H8. Sans cela il n'y aurait pas des valeurs mais des messages d'erreur.
Dans exactement ces cellules-là il y a les formules avec INDIRECT() qui me causent des soucis. Ne connais-tu pas une méthode pour contourner (dans la mesure du possible sans VBA) cette fonction "traître"?

Ce qui manque e.a., c'est des formules dans J6, N6, R6 pour afficher la date des jours de congé supplémentaires.

A+
Aloha
 
Dernière édition:

CISCO

XLDnaute Barbatruc
Bonjour

Pour le INDIRECT, je ne pense pas que cela soit faisable avec des formules avec un fichier fermé. Avec du VBA, il y avait la proposition de Ti (INDIRECT.EXT il me semble, proposition dont tu parles sur ton autre post), mais je ne sais plus où on peut la trouver.

Par contre, pour ce qui est des dates dans J6, N6 et R6, il ni a pas de problème.

J'essaye de simplifier ta dernière proposition et je t'envoies tout ça.

@ plus
 

Discussions similaires

Statistiques des forums

Discussions
312 228
Messages
2 086 421
Membres
103 205
dernier inscrit
zch