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

Dans la macro il y a une ligne comme suit
Workbooks(Fdestina).Worksheets(feuildestina).Range("AG4: DB" & DLcolAG).Select
qu'il faut logiquement corriger ainsi
Workbooks(Fdestina).Worksheets(feuildestina).Range("AG4: DC" & DLcolAG).Select

@ plus
 
Dernière édition:

Aloha

XLDnaute Accro
Bonsoir,
Il me semble que AG4 devrait être changé en AH4, non? Dans AG il n'y a rien. Il semble y avoir eu à un certain moment un décalage d'une colonne vers la droite.

J'ai importé janvier à avril 2021.
Je vais envoyer le fichier aux responsables pour vérification, s'ils arrivent à ouvrir le fichier.
Pour ces besoins, j'ai mis l'effaçage des tableaux à la fin en commentaire.

Je dois me remettre à essayer de comprendre ton formatage conditionnel. pour pouvoir leur expliquer.
A+
Aloha
 
Dernière édition:

CISCO

XLDnaute Barbatruc
Bonjour

Bonsoir,
Il me semble que AG4 devrait être changé en AH4, non? Dans AG il n'y a rien. Il semble y avoir eu à un certain moment un décalage d'une colonne vers la droite.
Oui, mais ce n'est pas important, donc on peut le laisser tel que.

Je dois me remettre à essayer de comprendre ton formatage conditionnel. pour pouvoir leur expliquer.
Qu'entends tu par " ton formatage conditionnel " ?
* Si tu parles du tableau de droite, effectivement, ce n'est pas évident...
* Si tu parles des bordures rajoutées dans le tableau de gauche... Elles sont construites avec les données du tableau de ... droite, avant qu'on ne l'efface.
La macro reprend tout le tableau le plus à gauche à partir de la fin. Lorsqu'elle rencontre un 168 (=7*24) dans le tableau de droite, elle met une bordure autour de la cellule correspondante dans le tableau de gauche, puis passe à la cellule juste avant. Elle rajoute des bordures dans le tableau de gauche jusqu'à rencontrer dans le tableau de droite un 1, colonne par colonne sur chaque ligne. Ensuite, plus rien jusqu'au prochain 168.
Méthode similaire pour les WE en bleu, mais avec le deuxième tableau.

@ plus
 

Aloha

XLDnaute Accro
Bonjour,
Je continue à faire des essais et en ce moment j'ai à chaque fois un message d'erreur.

Lorsque j'analyse le probléme à la ligne 3011 (lig=3011) alors je remarque qu'Excel y a collé les entêtes du tableau!

Lorsque j'exécute la seule macro Transfer, les copies se font correctement.
Il me semble que le problème réside dans l'exécution de la macro Saisies qui ne se laisse pas exécuter seule, ni normalement ni avec F8, ce qui m'empêche d'y rechercher le problème.
Bizarre, un problème qui n'a pas existé jusqu'ici.

-----------------------Update------------------------------
J'ai trouvé la raison du problème, mais je ne saisis pas le pourquoi:
J'ai travaillé sur un fichier provisoire que j'avais baptisé BaseXXX.
Lorsque je reviens sur le fichier Base original le problème n'existe pas.
Quelle en pourrait être la cause (sans y perdre trop de temps pour le rechercher)?
A+
Aloha
 

Pièces jointes

  • Message d'erreur.JPG
    Message d'erreur.JPG
    17.3 KB · Affichages: 26
  • Erreur.JPG
    Erreur.JPG
    46.5 KB · Affichages: 25
  • Problème tableau trié.JPG
    Problème tableau trié.JPG
    56.9 KB · Affichages: 25
Dernière édition:

CISCO

XLDnaute Barbatruc
Bonsoir

Est-ce que tu peux trouver la valeur de lig sur la ligne joursem = Weekday(Tablotrié(lig, 1), 7) lorsque cela plante (Par exemple en glissant le curseur de la souris au-dessus de lig dans cette ligne (Il existe d'autres méthodes, mais essaye d'abord avec celle-là)) ?

@ plus

PS : Normalement, on ne doit pas obtenir autant de lignes en bleu touche à touche. Cela montre bien qu'il y a un problème avec weekday ou testWE.
 

Aloha

XLDnaute Accro
Bonjour,
Comme il ressort de mon dernier message, ce n'est pas de toute importance de rechercher et trouver l'origine du malfonctionnement, puisque j'ai travaillé sur un fichier provisoire et que, lorsque je reviens sur Base, il n'existe pas.
Pour répondre à ta demande: c'est la ligne 2949
Lorsque je regarde ce qu'il y a dans cette ligne, il y a encore une fois les entêtes.
Pas besoin de chercher plus loin.

PS : Normalement, on ne doit pas obtenir autant de lignes en bleu touche à touche. Cela montre bien qu'il y a un problème avec weekday ou testWE.

Comment y remédier?

Bonne journée
Aloha
 

Pièces jointes

  • Erreur.JPG
    Erreur.JPG
    49.9 KB · Affichages: 30

CISCO

XLDnaute Barbatruc
Bonjour

Bonjour,
...
Comment y remédier?

Bonne journée
Aloha

Normalement, on ne doit avoir des cellules bleues que sur les W.E. comportant des repos d'au moins 44 h consécutives, dans la plage horaire que tu as définie. Sur les deux exemples que tu as mis, il semble que cela ne soit pas forcément le cas.
De plus, il y a une ligne avec des en-têtes, ce qui ne convient pas non plus.

Je vais vérifier la ou les conditions sélectionnant les lignes à recopier, pour voir pourquoi la ligne comportant les en-têtes est parfois recopiée. Si je ne trouve pas, il faudra voir ce qu'il y a de particulier sur les feuilles correspondant à ces personnes (Chevalier Jean dans ton dernier exemple).

@ plus
 

Aloha

XLDnaute Accro
Je vais vérifier la ou les conditions sélectionnant les lignes à recopier, pour voir pourquoi la ligne comportant les en-têtes est parfois recopiée. Si je ne trouve pas, il faudra voir ce qu'il y a de particulier sur les feuilles correspondant à ces personnes (Chevalier Jean dans ton dernier exemple).

@ plus
Bonjour,
Je me répète: ce n'est pas de première importance, juste par curiosité, de savoir pourquoi la macro se comporte de cette sorte dans le fichier provisoire!
A+
Aloha
 
Dernière édition:

CISCO

XLDnaute Barbatruc
Bonjour

Si cela ne concerne que les transferts faits avec le fichier provisoire, cela n'est pas très important.
Pour autant, je ne comprend pas trop pourquoi il y a cette ligne Date, Nom&Prénom en trop... (La copie dans le fichier source se fait bien au bon endroit, sur la bonne Range A5:A... (Range entourée automatiquement avec des pointillés sur le fichier source, à gauche dans l'image ci-dessous, après le filtrage fait (ligne en rouge ci-dessous à droite))
Range(A5 Copy.PNG
, ni pourquoi il y a tant de cellules remplies en bleu.

@ plus
 
Dernière édition:

CISCO

XLDnaute Barbatruc
Bonjour

Petite vérification : Est-ce que tu obtiens ces cellules bleues sur des lignes ne correspondant pas à la plage allant de 6 heures le samedi matin et 6 heures le mardi matin ?

Si oui, pourrais-tu m'envoyer une image représentant la partie de tableau WE correspondant à ces lignes ?

@ plus
 

Aloha

XLDnaute Accro
Bonjour,
Il y en a même beaucoup.
Sur la copie d'écran "Bleu" (et dans le fichier Excel aussi bien évidemment) les jours sont en allemand, Dieu sait pourquoi (Excel en français, Windows en français).
Sa=Samedi
So=Dimanche
Mo=Lundi
Di=Mardi
Mi=Mercredi
Do=Jeudi
Fr=Vendredi

Et le formatage reste lorsque les cellules sont vidées: "Formatage"

Avant que tu change quelque chose dans le dernier fichier que j'avais posté: j'y ai travaillé pas mal et je poste la dernière version que je te prie d'utiliser.
A+
Aloha
 

Pièces jointes

  • Formatage.JPG
    Formatage.JPG
    86.6 KB · Affichages: 24
  • Bleu.JPG
    Bleu.JPG
    152.9 KB · Affichages: 23

Aloha

XLDnaute Accro
Re,
Voici la dernière Base
J'ai ajouté quelques colonnes dans 44 HEURES, puisqu'elles sont disponibles.
Le bouton le plus à droite remplit le tableau et rajoute ces colonnes, l'autre le même tableau sans ces colonnes supplémentaires.
A+
Aloha
 

Pièces jointes

  • Base.xlsm
    893.1 KB · Affichages: 3

Statistiques des forums

Discussions
311 730
Messages
2 081 991
Membres
101 856
dernier inscrit
Marina40