Microsoft 365 Compter les WE libres

Aloha

XLDnaute Accro
Bonsoir,
Dans le document ci-attaché se trouvent les données (heures) en rapport avec le contrat de travail de DUPONT Marie et DURAND Germaine.
Dans la ligne en haut les 24 heures de la journée + nuit
Colonne A: Date
Colonne B: Jour semaine
Colonne C: Nom et prénom de l'agent
Colonne D: le service dans lequel l'agent travaille
Colonnes E à AB: les heures en rapport avec le contrat de travail

Signification des symboles rencontrés:
X = 1 heure de travail
C = 1 heure de congé
RS = 1 heure réunion de service comptée comme heure de travail
T = Tutorat
HS = heure supplémentaire
...et il y en a d'autres

Double problème:

* le premier:

La règle: le repos ininterrompu hebdomadaire de 44 heures doit coïncider avec le week-end au moins 20 fois par an. Le week-end s’étend sur une période de deux jours consécutifs situés entre 6 heures le samedi matin et 6 heures le mardi matin.

Les périodes samedi 6h à mardi 6h sont en jaune.

Il s'agit donc de vérifier quand la personne avait un WE de libre suivant les règles ci-dessus
et de les mettre dans un compteur pour faire le bilan à la fin de l'année.

* le second:

Chaque salarié a droit à un repos ininterrompu de 44 heures par semaine. Dès la fin d’un repos hebdomadaire, le prochain repos hebdomadaire doit intervenir endéans les prochains sept jours. Les salariés qui n’ont pas pu jouir dudit repos auront droit à un jour de congé supplémentaire pour chaque période entière de 8 semaines, successives ou non, pendant laquelle le repos ininterrompu de 44 heures par semaine n’est pas accordé.

Il faut donc compter les périodes de 7 jours où la condition est remplie (donc pas 44 heures libres consécutives)

Je ne sais pas si ces poblèmes sont résolubles par seules formules ou s'il faut du VBA. La base de données retraçant chaque heure de chaque jour de l'année pour quelque 130 salariés (qui n'existe pas encore; les données sont disponibles dans des fichiers mensuels par service regroupant tous les salariés travaillant dans ce service; il faudra copier les données par VBA) sera assez importante: 130 * 365 = beaucoup de lignes

Quelqu'un parmi vous entrevoit-il/elle comment résoudre ce double problème?
Merci d'avance pour tout tuyau et toute aide!

Bien à vous
Aloha
 

Pièces jointes

  • Saisies.xlsx
    19.2 KB · Affichages: 185
Dernière édition:

CISCO

XLDnaute Barbatruc
Bonsoir

Un fichier prenant en charge les 2 problèmes, mais ne devant contenir qu'une seule plage de données correspondant à DUPONT Marie, une seule concernant DURAND Germaine... Pour le moment, je ne vois pas comment faire si il y a plusieurs plages de données correspondant à DUPONT Marie, plusieurs pour DURAND Germaine...

Dans AD3, le nombre de jours de congé à accorder (problème 2).
Dans AG3, le nombre de W.E. contenant 44 h consécutives de repos (problème 1).

@ plus

PS : Le 1/4/2005 n'est pas un samedi mais un vendredi
 

Pièces jointes

  • Aloha Saisies 11.3.21 bis deux.xlsx
    452.2 KB · Affichages: 2
Dernière édition:

CISCO

XLDnaute Barbatruc
Rebonsoir

Idem, mais dans ce cas, on peut avoir plusieurs plages disjointes concernant DUPONT Marie, plusieurs pour DURAND Germaine et ainsi de suite.

Il faut tout vérifier, surtout au niveau des limites (lorsque le changement à lieu à la 43ème heure, ou le mardi matin à 5 h...).


@ plus
 

Pièces jointes

  • Aloha Saisies 11.3.21 bis quatre.xlsx
    788.7 KB · Affichages: 2
Dernière édition:

Aloha

XLDnaute Accro
Rebonsoir

Idem, mais dans ce cas, on peut avoir plusieurs plages concernant DUPONT Marie, plusieurs pour DURAND Germaine et ainsi de suite.

Il faut tout vérifier, surtout au niveau des limites (lorsque le changement à lieu à la 43ème heure, ou le mardi matin à 5 h...).

Si c'est bon, je définirai des noms pour rendre les formules plus lisibles.

@ plus
Bonjour,
Dans ta nouvelle proposition il y a 4 colonnes par salarié, ce qui me fait 4*au moins 130 colonnes, ce qui n'est pas possible.
Et je me répète: comme je ne suis pas capable de comprendre ta façon de procéder je ne peux juger que par les résultats:
Si p.ex. j'efface tout pour le WE du 9 au 12.4. et qu'il y a donc un WE de plus, rien ne change dans le compteur!
Je ne peux pas exiger de toi d'investir autant de travail dans mes petits problèmes, mais à toi de décider quand tu arrêtes!
Bien à toi
Aloha
 

CISCO

XLDnaute Barbatruc
Rebonjour

Si tu supprimes les X dans le W.E. du 9 au 12/04, cela ne change rien dans AD3 (le nombre de jours de congé supplémentaire, car il ni a pas 8 "semaines" posant problème) mais cela change la valeur dans AG3 (car il y a un W.E. en plus avec repos de 44 h).

@ plus
 

CISCO

XLDnaute Barbatruc
Bonjour

1) Dans le post 18, le nom Date ne prenait pas en compte la dernière date de la colonne A. Il fallait le définir avec =DECALER(SAISIES!$A$4;0;0;NBVAL(SAISIES!$C:$C)-1) au lieu de =DECALER(....NBVAL(SAISIES!$C:$C)-2). J'ai donc changé ce fichier "Aloha Saisies.... quatre" dans le post 18.

2) Je viens d'étendre ce fichier chez moi pour prendre en charge 135 personnes. 26 Mo, pour seulement 3000 lignes, ça refroidit :eek:.

3) Ci-dessous, ce fichier, pour 135 personnes, mais sans avoir étendu les formules sur les 3000 lignes.

@ plus
 

Pièces jointes

  • Aloha Saisies 11.3.21 bis quatre bis.xlsx
    840 KB · Affichages: 2

Aloha

XLDnaute Accro
Bonjour,
Tu es plus rapide que ton ombre! ;)
J'avais téléchargé ton dernier fichier, ajouté des donnés de sorte que DUPONT Marie a 8 WE libres, mais Excel n'en affiche que 5
 

Pièces jointes

  • Saisies 12.3.21.xlsx
    779.7 KB · Affichages: 4

Aloha

XLDnaute Accro
Bonjour

Une autre possibilité, avec moins de colonnes, mais uniquement pour le problème 1.
Les calculs semblent être corrects, mais il y a donc seulement une solution pour le problème 1.
Je propose les modifications suivantes pour mieux maîtriser les dates:
* dans les formules remplacer "Samedi" par JOURSEM(A4)=7 et "Mardi" par JOURSEM(A4)=3, sinon cela ne fonctionne pas sur Excel en allemand. Le mien est bien français, mais les jours sont en allemand (sans que je sache pourquoi), de sorte que si dans une formule apparaît "Mardi" elle ne fonctionne pas
B4: =A4 et formater la colonne B en "dddd".

Les références $AB$2:BG$2 dans la formule en BH2: =@INDEX(Nometprénom;EQUIV(0;INDEX(NB.SI($AB$2:BG$2;Nometprénom););0)) sont-elles vraiment exactes?

Le problème 2 peut être traité sur une autre feuille.

Y aurait-il la possibilité, pour que ce système soit moins lourd en ce qui concerne les formules, de placer les formules seulement par la même macro qui copie les données, et seulement pour les lignes copiées, pour ensuite remplacer les formules par leur résultat?
 
Dernière édition:

CISCO

XLDnaute Barbatruc
REbonjour

Y aurait-il la possibilité, pour que ce système soit moins lourd en ce qui concerne les formules, de placer les formules seulement par la même macro qui copie les données, et seulement pour les lignes copiées, pour ensuite remplacer les formules par leur résultat?
Avec du VBA, on doit pouvoir afficher directement les résultats sur la ligne 3. Réutiliser les formules, ce n'est pas la meilleure méthode.

@ plus
 

Statistiques des forums

Discussions
312 201
Messages
2 086 164
Membres
103 149
dernier inscrit
Deepkneec