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:

Aloha

XLDnaute Accro
Re,
Il y en a un dans le post #42.
C'est un fichier original dans lequel je n'ai laissé que 2 fiches dont j'ai changé les noms.
Je le re-joins.
A+
Aloha
 

Pièces jointes

  • Septembre 2020 Service 1.xlsx
    300.1 KB · Affichages: 5
Dernière édition:

CISCO

XLDnaute Barbatruc
Bonsoir

Je vais essayer d'insérer ces données directement au bon endroit dans la feuille au sujet des WE et des repos (Plus besoin de la macro Tri dans ce cas). J'espère que cela tournera plus vite que l'autre solution, tout faire en bloc...

A tout hasard, tu peux, dans ton dernier fichier, faire plus simplement en colonne B en mettant =A5 au format personnalisé jjjj

@ plus
 

Aloha

XLDnaute Accro
Re,
Je vais essayer d'insérer ces données directement au bon endroit dans la feuille au sujet des WE et des repos (Plus besoin de la macro Tri dans ce cas). J'espère que cela tournera plus vite que l'autre solution, tout faire en bloc...
Ok, merci.

A tout hasard, tu peux, dans ton dernier fichier, faire plus simplement en colonne B en mettant =A5 au format personnalisé jjjj
Je ne travaille plus sur mon fichier, cela ne sert à rien. Ce que j'ai à faire (entre autre intégrer le tout dans le système existant) je le ferai à la fin.
A+
Aloha
 

CISCO

XLDnaute Barbatruc
Bonsoir

Je ne travaille plus sur mon fichier, cela ne sert à rien. Ce que j'ai à faire (entre autre intégrer le tout dans le système existant) je le ferai à la fin.
A+
Aloha
Je parlais du fichier Septembre, pas du fichier concernant les repos.

Est-ce que tu aurais un fichier mensuel avec plus de personnes ? Si non, je m'en fabriquerai un...

Combien de temps est-ce que la macro actuelle met pour faire le transfert d'un fichier service mensuel vers le fichier concernant les repos, pour combien de personnes ?

@ plus
 
Dernière édition:

Aloha

XLDnaute Accro
Bonsoir,
Je n'en manque pas!
En voici un avec des données réelles et les noms des salariés modifiés.

A tout hasard, tu peux, dans ton dernier fichier, faire plus simplement en colonne B en mettant =A5 au format personnalisé jjjj
Tu ne parles pas du fichier Septembre là!?

A+
Aloha
 

Pièces jointes

  • Septembre 2020 Service 1.xlsx
    933 KB · Affichages: 3

CISCO

XLDnaute Barbatruc
Bonsoir
A tout hasard, tu peux, dans ton dernier fichier, faire plus simplement en colonne B en mettant =A5 au format personnalisé jjjj
Là, je parlais de la colonne B du fichier Septembre. Il ni a pas besoin de mettre une formule pour afficher le nom des jours. Il suffit de faire avec le format personnalisé jjj (3 j) pour avoir le début du nom (Lun, Mar...) ou jjjj (4j) pour avoir le nom complet.

@ plus
 

CISCO

XLDnaute Barbatruc
Rebonsoir

Cela prend environ 5 minutes pour effectuer automatiquement le transfert du fichier Service mensuel vers le fichier annuel, pour 7 personnes. Ce n'est pas la catastrophe, mais cela n'est pas extraordinaire. Le problème, ce n'est pas le transfert, mais la suppression des lignes vides. Leur présence complique le travail... Il existe un copier/coller en VBA permettant la suppression des vides directement, mais je pense que cela concerne toutes les cellules vides, ce qui ne nous convient pas....

Comment est-ce que vous faites ce transfert actuellement ? Combien de temps cela vous prend-il ?

@ plus

P.S : Je viens de faire un essai sans éliminer les lignes vides. Ça ne prend même pas une minute...
 
Dernière édition:

Aloha

XLDnaute Accro
Re,
Avec la macro que j'ai fabriquée à partir d'un enregistrement c'est assez rapide; en plus elle fait un double travail: elle remplit la fiche Database et la fiche Saisies.
Jusqu'ici la macro ne remplit dans le système en usage que les 66 colonnes de la fiche Database et c'est rapide; j'ai intégré ma macro pour la fiche Saisies dans cette macro, parce que je voulais profiter du fait qu'elle parcourt déjà toutes les fiches pour prendre les valeurs pour Database; ainsi elle peut prendre en même temps celles pour Saisies et les fichiers mensuels ne doivent pas être ouvert une deuxième fois.
A+
Aloha
 

Aloha

XLDnaute Accro
Bonjour,
En réalité ma macro, qui trie les données fiche par fiche fonctionne très bien.
Au début j'avais des problèmes pour trouver les dernières cellules vides aux yeux de l'utilisateur mais pas vides pour Excel.
Ce ne serait pas faux qu'un spécialiste regarde cette macro qui peut sûrement être améliorée.
Comme j'avais expliqué dans un récent post, je l'ai intégrée dans celle qui remplit la feuille Database.
A+
Aloha
 

CISCO

XLDnaute Barbatruc
Bonsoir

Est-ce que tu peux faire quelques essais avec le fichier ci-joint, soit avec le bouton-macro 1) Transfert à partir d'un fichier Service, soit avec ta macro.

1) Le fichier Service à transférer doit être ouvert. Cliquer sur le bouton-macro 1)... puis donner le nom du fichier source, avec son extension
2) Faire un tri avec le bouton-macro 2)...
3) Mettre les formules avec...
4) Mettre les valeurs à la place...
5) Ouvrir un autre fichier mensuel d'un autre service ou d'un autre mois. Faire le transfert avec le bouton-macro 1.
Et ainsi de suite.

De mon coté, j'ai fait des tests avec 2 mois. Ça à l'air de fonctionner. Pour chaque mois, environ :
* 7 secondes pour faire le transfert pour 7 personnes
* une trentaine de secondes en plus pour éliminer les lignes vides superflues avec un filtre (contre 5 minutes avec une boucle !)

Les MFC et le format (les bordures) ne suivent pas correctement l'étendue traitée... Je verrai ça plus tard si nécessaire.

@ plus
 

Pièces jointes

  • Aloha Saisies tableau trié au début12.xlsm
    309.9 KB · Affichages: 4

CISCO

XLDnaute Barbatruc
Rebonsoir

Je n'ai pas intercalé les nouvelles données entre les anciennes (cela me parait trop compliqué : Il faut insérer des lignes à la fin de chaque ancienne partie correspondant à chaque personne, y coller les nouvelles données, puis supprimer les lignes vides...), mais à la fin.
Il faut donc utiliser :
1) Une première macro pour faire le transfert
2) Une seconde macro pour faire un tri par personne

@ plus
 

Aloha

XLDnaute Accro
Rebonsoir

Je n'ai pas intercalé les nouvelles données entre les anciennes (cela me parait trop compliqué : Il faut insérer des lignes à la fin de chaque ancienne partie correspondant à chaque personne, y coller les nouvelles données, puis supprimer les lignes vides...), mais à la fin.
Il faut donc utiliser :
1) Une première macro pour faire le transfert
2) Une seconde macro pour faire un tri par personne

@ plus
Bonsoir,
je vais étudier tout ça demain matin.
Bonne nuit
Aloha
 

Discussions similaires

Réponses
10
Affichages
1 K
Réponses
0
Affichages
379

Statistiques des forums

Discussions
315 098
Messages
2 116 193
Membres
112 679
dernier inscrit
Yupanki