XL 2019 Code VBA pour automatiser la programmation des rotations des ouvriers qui travaillent à temps partiel et se relaient par période de temps constante.

olivier1984

XLDnaute Junior
Bonjour le forum des experts !

Je reviens vers vous avec ce même problème que j'avais déjà posé ici il y'a des mois mais dont je n'ai pas véritablement trouvé de solution.

La fois précédente il y'a eu un soucis en ce que ceux qui s'étaient essayé n'avaient pas bien compris mon problème d'où je reviens en essayant cette fois être très explicite. Je dis quand-même merci à tous ceux là qui m'avaient proposé quelque chose.


Voici les explications nécessaires pour travailler sur le fichier :

La société dispose de plus d'une centaine d'ouvriers.

À propos des stations :

Il y'a 3 stations de travail (station 1, station 2 et station 3) et toutes ces stations ont exactement les mêmes activités d'où les mêmes départements se retrouvent dans toutes ces stations.
Il n'y a donc pas un problème de sur effectif ou de sous effectif car les stations bien qu'ayant les mêmes activités n'ont pas la même taille.

Cependant, la station "home" n'est pas véritablement une station de travail mais c'est l'appellation qu'on a donnée à ceux qui ne sont pas de service, j'expliquerai plus bas.

Le principe de rotation :

Une partie des ouvriers va sur les stations et y restent pendant une période de 60 jours tandis que tous les autres restent à la maison (chacun chez soi) pendant cette même période, c'est à eux qu'on attribue alors ladite station "home" qui signifie qu'ils sont de repos.

À la fin des 60 jours, les ouvriers qui étaient de repos ("home") sont envoyés à leur tour sur les différentes stations tandis que ceux qui y étaient sont envoyés à leur tour au repos ("home")

Les périodes de travail :

Au départ c'était 30 jours de travail pour chaque vague et une vague ne travaillaient pas pendant deux mois consécutifs. C'était 30 jours sur une station, puis les 30 jours qui suivent à la maison et ainsi de suite...

Puis la direction a fait passer la période de travail de 30 jours à 60 jours et c'est ça qui est en vigueur jusqu'à ce jour.

Retenons donc qu'une période de travail sur une station c'est 60 jours et de même, la période de repos est également de 60 jours.

Exemple pratique :
La société dispose par exemple de 110 ouvriers.
Période de travail : 60 jours soit du 01 mars 2024 au 30 avril 2024.

Affectation des ouvriers : 15 ouvriers pour la station 1, 22 ouvriers pour la station 2 et 15 ouvriers pour la station 3 ce qui nous fait un total de 52 ouvriers sur les différentes stations.

S'il y'a 55 ouvriers sur les stations ça signifie qu'il y'a 110-52 = 58 ouvriers au repos.

NB. Le nombre pair ou impair des ouvriers ne pose aucun problème du tout.

À la fin de ces 60 jours, on recommence la procédure.

La Nouvelle période de travail est toujours de 60 jours et s'étend alors du 01 Mai 2024 au 30 Juin 2024.

Ici, les 55 ouvriers qui sont actuellement sur les stations vont aussi rentrer chez eux ("Home") et les 58 qui étaient à la maison ("home") vont venir les remplacer sur les stations.

NB1. Un ouvrier peut être affecté dans n'importe quelle station mais toujours dans le même département (car on ne change pas de poste du jour au lendemain).

NB. Cette manœuvre est faite continuellement chaque 60 jours et ce, de manière indéfinie...

J'espère que les explications sont assez explicites cette fois ci.

Mon problème : je cherche comment mettre sur pieds un système qui me permettra de faire ces affectations de façon automatique avec possibilité de sauvegarder les anciennes affectations (soit dans de nouvelles feuilles soit dans un fichier pdf) qui pourraient servir à régler des soucis, problèmes ou faire des contrôles.

Sans oublier que c'est une opération qui se répétera tous les 60 jours. Et aussi que la période de rotation de 60 jours pourrait aussi varier dans le temps puisqu'au départ c'était 30 jours et c'est monté à 60 jours mais pour l'instant on retient 60 jours.

Pour donc éviter toute embrouille, j'ai supprimé tout ce qui avait déjà été fait et j'ai laissé uniquement les données utiles.

Sentez-vous libre de modifier la structure du fichier si cela est nécessaire, ma conception est peut-être limitée pour obtenir ce résultat que je cherche;
l'important pour moi est que ça puisse fonctionner.

Pièce jointe : "Ouvrier 2"
 

Pièces jointes

  • OUVRIER 2.xlsm
    91.5 KB · Affichages: 1
Dernière édition:

AtTheOne

XLDnaute Accro
Supporter XLD
Bonjour à toutes & à tous, bonjour @olivier1984
Seulement, sur la feuille archivage, j'ai remarqué que les données ne sont pas stockées de façon cumulative, au contraire les données les plus récentes viennent écraser les anciennes données qui sont alors perdues définitivement
Heu, si fais un filtre et tu verras qu'il y a plusieurs dates de début ...
Je vais trier dans le sens chronologique inverse pour avoir les dates les plus récentes en tête, ajouter le fitre sur la dernière période, adapter l'entête pour avoir les dates de la période sélectionnée (si tu dois imprimer l'archive), revoir la mise en page.
Pour le bouton, tu attiges un peu, une fois la mise en page faite, demander l'impression n'est quand même pas très compliqué !
Enfin je vais te le rajouter.
À bientôt
 

olivier1984

XLDnaute Junior
Bonjour à toutes & à tous, bonjour @olivier1984

Heu, si fais un filtre et tu verras qu'il y a plusieurs dates de début ...
Je vais trier dans le sens chronologique inverse pour avoir les dates les plus récentes en tête, ajouter le fitre sur la dernière période, adapter l'entête pour avoir les dates de la période sélectionnée (si tu dois imprimer l'archive), revoir la mise en page.
Pour le bouton, tu attiges un peu, une fois la mise en page faite, demander l'impression n'est quand même pas très compliqué !
Enfin je vais te le rajouter.
À bientôt
Ah bon je n'ai pas prêté attention je vais alors regarder pour voir ce que je n'ai pas pu voir précédemment.
Merci beaucoup pour les améliorations à venir.

J' ai cependant une grosse inquiétude, en effet, il se pourrait que d'ici quelques semaines la période de travail et où de repos ne sera plus fixé pour tous les ouvriers comme c'est le cas actuellement (c'est-à-dire 60 jours pour tous).
Certains ouvriers au sein d'une même station pourraient avoir 20 jours, d'autres 40, d'autres 60 etc... Selon les besoins de la société et les profils de chacun et vise versa pour les périodes de repos.

Je dirais même que la probabilité que cette nouvelle règle devienne une effectivité est très élevée (plus de 90%).
C'est l'information que j'ai reçu ce matin de mon collègue qui s'occupe des affectations lorsque j'étais allé le voir pour lui demander plus d'informations sur les règles d'affection des ouvriers dont on parlait hier soir.

Est ce que ce fichier qui marche déjà à merveille grâce évidemment à ton expertise pourrait encore fonctionner dans ce cas ?

Sinon pouvons nous anticiper cela en mettant une nouvelle configuration qui tient compte de ces nouveautés ?

Merci
Cordialement
 

AtTheOne

XLDnaute Accro
Supporter XLD
Re,
Voici en pièce jointe le fichier modifié.
Certains ouvriers au sein d'une même station pourraient avoir 20 jours, d'autres 40, d'autres 60 etc... Selon les besoins de la société et les profils de chacun et vise versa pour les périodes de repos.
Dans ce cas c'est dans la table des employés qu'il faudra mettre cette information avec SN, Matricule, Nom, département.
Et il faudra adapter le code pour faire les rotations sur les dates de retours et non plus sur les durées, la formule des durées se faisant avec un RECHERCHEV comme les Noms et les Départements.
Moi de mon coté j'attends d'en savoir plus pour bouger !!
À bientôt
 

Pièces jointes

  • Rotation Stations AtTheOne 2.xlsm
    40.7 KB · Affichages: 1

olivier1984

XLDnaute Junior
Re,
Voici en pièce jointe le fichier modifié.

Dans ce cas c'est dans la table des employés qu'il faudra mettre cette information avec SN, Matricule, Nom, département.
Et il faudra adapter le code pour faire les rotations sur les dates de retours et non plus sur les durées, la formule des durées se faisant avec un RECHERCHEV comme les Noms et les Départements.
Moi de mon coté j'attends d'en savoir plus pour bouger !!
À bientôt
Merci pour les nouvelles modifications apportées.

Par rapport à la dernière modification de la société sur la durée de la période sur les stations ou de repos, c'est finalement confirmé mais ça prendra effet progressivement dès la prochaine vague de rotation prévue pour pour début décembre. Ceci est dû au fait qu'il y'a eu de nouvelles recrues avec des profils de :
* Agents d'appui
* Pré-emploi
* Stagiaires
* des périodes d'essai

Donc ce n'est plus une probabilité mais une confirmation que je viens de recevoir de la part de mon collègue responsable de ce département.

J'aimerais donc humblement te demander d'apporter toutes les modifications dont tu as parlées afin que le fichier puisse continuer à fonctionner puisque c'est de ça qu'il s'agit présentement.

Merci d'avance pour la diligence, l'expertise et le coup de main.

En attendant, je jette rapidement un coup d'œil sur le nouveau fichier et je te fais un retour rapide.

On se dit alors Incessamment...
 

olivier1984

XLDnaute Junior
Re,
Voici en pièce jointe le fichier modifié.

Dans ce cas c'est dans la table des employés qu'il faudra mettre cette information avec SN, Matricule, Nom, département.
Et il faudra adapter le code pour faire les rotations sur les dates de retours et non plus sur les durées, la formule des durées se faisant avec un RECHERCHEV comme les Noms et les Départements.
Moi de mon coté j'attends d'en savoir plus pour bouger !!
À bientôt
Je viens de tester le nouveau fichier mais ça ne fonctionne pas ça bug.

Pièce jointe : images du bug

Merci
 

Pièces jointes

  • BUG 2.png
    BUG 2.png
    102.8 KB · Affichages: 0
  • BUG 1.png
    BUG 1.png
    92.8 KB · Affichages: 0

Discussions similaires

Réponses
10
Affichages
1 K
Réponses
46
Affichages
2 K

Statistiques des forums

Discussions
314 701
Messages
2 112 032
Membres
111 408
dernier inscrit
Vonkhar777