Planification équitable
Bonjour à toutes et tous .
Je me permets de vous solliciter à nouveau en vous remerciant par avance de l'intérêt que vous porterez à mon problème :
Je suis chargé de réfléchir à la meilleure façon de planifier quotidiennement du lundi au vendredi des missions de 3 agents pris parmi une équipe de 20 .
J'ai donc calculé le nombre de combinaisons possibles et j'aimerais répartir équitablement idéalement au mois , voire au trimestre les trinômes ( exemple le lundi 1,2 3 - Le mardi 7,8,9 - mercredi 11,,4,6 etc ... Afin que tous les agents participent équitablement aux missions ...
Je ne sais pas si quelqu'un à la solution à mon problème , mais moi je sèche ...
Je vous joins le fichier avec la liste des combinaisons possibles en jetant la bouteille à la mer ...
En vous remerciant
bonjour,
c'est un Mac, donc au niveau de VBA, c'est pas la même chose.
espérons ...
Un grand merci BsAlv
Belle journée
re,
heureusement, si ce n'était pas un Mac, je n'avais pas utilisé la colonne C pour aleoriser et fais tout en mémoire ...
Bonjour BsAlv
Je tiens à préciser que je ne maitrise pas les macros ...
Quand je clique sur planification rien ne se passe (Suis nul)
Je peux modifier la période mais là aussi lorsque je clique sur planification ce sont les mêmes combinaisons et sur l'ancienne période définie qui restent
Sans abuser , j'aimerais pouvoir y ajouter des fonctionnalités :
Certains agents ne peuvent pas travailler en même temps sous peine de déséquilibrer le service , serait ce possible de ne pas générer les combinaisons les concernant à titre temporaire (Exemple le n°2 ne peux pas tourner avec le 5 et le 6 : Donc que toutes les combinaisons reprenant au moins 2 de ces agents ne soient pas générées " 2-5 / 2-6 / 2-5-6"
Et enfin prenons le cas d'un agent en vacances ou absent à certaines dates que les combinaisons sur ces dates ne soient pas générées avec lui (Exemple le n° 2 est absent le 5 et 6 aout = pas de combinaisons avec le n°2 à ces dates là - le 8 est absent tout le mois de mai même chose sont exclues les combinaisons avec le 8 .
Ce qui est important c'est de respecter la répartition des agents sur le temps et le nombre (Pas qu'un agent soit intégré 3 fois toutes les semaine et 1 autre 1 fois dans le mois ..
Je sais j'en demande beaucoup , et je vous remercie par avance de votre retour .
Bonne journée
bonjour,
vous pouvez aussi démarrer la macro avec CTRL+SHIFT+P (de Planification).
Les combinaisons interdits sont déjà intégrés mais j'ai des problèmes temporaires avec les abscenes.
On peut bloquer une personne, comme "Agent 007" (ligne7) , un "duo" ou un "trio",
Il y avait un problème au niveau du bouton, je crois.
Bonjour
Pardon d'à nouveau vous déranger mais j'ai un message d'erreur quand je clique sur planification , de plus les combinaisons interdites étaient un exemple je veux pouvoir bloquer à tour de rôle en sélectionnant les agents qui ne doivent pas être ensemble ce ne sont pas toujours les mêmes ... pour les absences également je veux pouvoir avoir la possibilité de paramétrer les absences de chacun sur des périodes comme du 2/07/2022 au 2/07/2022 ou du 10/01/2022 au 15/01/2022 .Et une fois parramêtré je lance les combinaisons restantes sur la période qui m'intéresse
Et bien évidement l'équitabilité dans la planification et une bonne rotation , je suis conscient de l'exigence mais si j'en étais capable c'est ce que je demanderais au fichier .
En vous remerciant encore une fois chaleureusement et avec reconnaissance pour votre travail .
re,
je vous donne une nouvelle version avec ces abscences, mais maintenant je lis que vous avez des erreurs, d'où je ne connais pas l'origine, c'est parce que c'est un Mac ou quelque chose autre ... .
Si possible, pouvez-vous ajouter un capture d'écran avec le message de l'erreur et la ligne où VBA s'arrête ? Un erreur est trop vague ...
Pour les abscences, on a le choix, par exemple tout les vendredi, une journée ou de jour x à jour y.
Le bouton est une forme "calendrier" pour éviter ce problème de "non-fonctionnement".
les combinaisons interdites, il manque là quelque chose ?
Par exemple 05 et 06 ne seront jamais ensemble, la même chose avec 12-20, 19-20 et 01-03-06.
Vous voulez exclure d'une autre manière ?
PS. interval = 6 veut dire qu'il y a 6 jours d'attente avant que cette personne peut de nouveau être planifié.
Sinon, dès qu'elle sort de son maladi est sera planifié presque chaque jour.
Bonjour
1 ) Quand je remplace dans le tableau "Liste des Personnes " dans la colonne A , les agents N° ... par leur nom ils ne sont pas remplacés dans les autres tableaux (Combinaisons interdites , Absences et vacances , Planification (colonnes D,E,F ,H, et Q . .
Pour les combinaisons interdites je ne souhaiterais pas figer les personnes aujourd'hui c'est le 5 qui ne peut pas travailler avec le 6 mais demain un autre etc , ce que je veux c'est que lorsque l'on saisit dans ce tableau combinaisons interdites les agents sur une même ligne ne puisse pas figurer dans une combinaison ensemble ni en binôme ni en trinôme , je vois par exemple le 25/01 ou le le 1 /02 le 01 avec le 06 alors qu'ils sont censés ne pas pouvoir travailler ensemble.
Le mardi 11 / 01/2022 : Il n'y a aucune combinaison .
Quand je clique sur le calendrier j'ai le message d'erreur qui apparait et rien ne change .
Erreur d'exécution 429
Un composant Activ X ne peut pas creer d'objet
Suis désolé
Pour ce qui concerne l'intervalle 6 , pardon mais je ne vois pas l'intérêt de cet intervalle , il ne faut pas qu'il soit planifié sur ses absences mais après il peut très bien être planifié le lendemain et pour la suite à son retour , il ne faut pas justement qu'il soit planifié presque chaque jour car le but est d'équilibrer les plannings des agents en nombre mais aussi de les répartir si possible (Si chaque agent est planifié 20 fois , ça doit être sur l'ensemble de sa période de présence , il ne faut pas qu' on le retrouve du 1/01/2022 au 20 /01/2022 et après plus du tout
Ps pour la capture d'écran le site refuse l'extension !
je suis conscient de la difficultés et vous remercie encore pour votre travail .
Bonjour à tous,
Su tu as 20 agents et que dans une semaine il t'en faut 15, tu fais une rotation sur 4 semaines. Les absents sont remplacés en heures supplementaires !
| S1 | s2 | S3 | S4 | |
| lun | 1 2 3 | 16 17 18 | 11 12 13 | 6 7 8 |
| mar | 4 5 6 | 19 20 1 | 14 15 16 | 9 10 11 |
| mer. | 7 8 9 | 2 3 4 | 17 18 19 | 12 13 14 |
| jeu. | 10 11 12 | 5 6 7 | 20 1 2 | 15 16 17 |
| ven. | 13 14 15 | 8 9 10 | 3 4 5 | 18 19 20 |
bonjour à tous,
* non, cela ne change pas automatiquement quand vous changer le nom dans le tableau des noms, que cela change partout. Si j'utulise le numéro au lieu du nom, cela est réalisable, donc si le reste vous convient (pas encore je crois), je le ferai.
* 2ième point dans cet paragraphe, on peut exclure des personnes (une entrée par ligne comme agent 007), des duo's/paires (2 entrées par ligne comme agent 05-06) ou des trio's (les 3 entrées comme agent 01-03-06).
Dans ce dernier cas, quand le trio 01-03-06 est exclu, cela ne veut rien dire au niveau de 01-06. Donc si vous voulez exclure 01-06, entrez ce combinaison et 01-03-06 sera exclu aussi. A ce point là, on a plutôt une incompréhension.
* j'essaie à utiliser toutes les combinaison une fois, no duplicates. Donc une fois qu'une combaison 01-02-03 est planifié, elle ne sera plus répétée. Voulez-vous supprimer cette limite ?
* j'essaie que tout le monde a à peu prêt le même charge de travail, donc je compte dès le début le nombre de fois que quelqu'un est assigné. Au moment où quelqu'un revient d'une maladi ou abscence longe (par exemple 3 mois, du 1/1/22 au 1/4/22 = environ 10 affectations, la première semaine, cette personne sera affectuée presque chaque jour parce qu'elle est autant décalé).
* si on prend les 2 derniers regles ensemble, une intervalle de quelque jours (factor le plus important) et une combinaison ne peut pas se répéter, cela peut arriver qu'on peut assigner personne. (20 personnes, 3 par jour, 5 jour par semaine, on est vide au bout des possibilités)
* le probème ActiveX, je ne sais pas si c'est un problème Mac ou quoi. Si vous lancer la macro avec Alt-F8, il n'y a pas de problèmes ? Si vous faites cela avec SHIFT+CTRL+P ? Donc c'est le problème du bouton ? Vous savez ajouter un bouton vous-même, parce que je ne le sais plus.
C'est surtout votre premier paragraph qui me perturbe, exclure des numéros au lieu des gens, c'est quoi la différence ? C'est plutôt un poste de travail au lieu des personnes qu'on doit planifier ?
Le truc de DjiDji59430 (c'est Dunkerque, non?), ça, c'est okay ?
Bonsoir
1) Oui ce serait sympa que l'on puisse changer les numéros par les noms dans le 1er tableau , ainsi les combinaisons réalisées seraient plus parlantes .
2) Pour les combinaisons interdites : 2 agents peuvent ne pas pouvoir travailler ensemble ex si Agent 1 et Agent 2 sont dans ce cas les combinaisons reprenant les 2 agents ne doivent pas être générées . Si Agent 5, Agent 6 , Agent 7 et Agent 8 ne peuvent pas travailler ensemble chaque fois qu'au moins 2 de ces agents se retrouve dans une combinaison elle ne doit pas être générée .Par contre si Agent 8 et Agent 9 ne doivent pas être ensemble et que l''agent 9 ne doit pas être avec l'agent 10 . Les combinaisons reprenant 8 et 9 ne sont pas générées ainsi que les combinaisons reprenant 9 et 10 par contre aucun problème pour les combinaisons 8 et 10
Je pense que l'on peut réutiliser les mêmes combinaisons la limite doit être la répartition en nombre et dans le temps.
N'est t'il pas possible de proratiser sur le temps de travail en fonction de la période choisie ? Sur 1 année sans vacances chacun travaille 40 fois ; si sur 1 année l'un à 2 mois de vacances , le nombre de combinaisons à prendre en compte sera moindre que les autres .Si La période choisie est le mois et qu'un agent est absent 8 jours , moins de combinaisons le reprenant seront générées (Ce qui évite de le retrouver presque tous les jours à son retour . (Je sais pas si c'est possible mais c'est plus logique)
Pour l'intervalle pas besoin ,dès le retour de l'agent on peut le reprendre dans une combinaison inutile d'attendre quelques jours .
Que l'on parle de numéros ou de noms c'est la même chose , les numéros seront remplacés automatiquement pour planifier les agents correspondants aux numéros , afin d'éviter de planifier quelqu'un d'absent on doit pouvoir définir les absences de chacun .
Pour les messages d'erreur pas de progrès .
En vous remerciant et en espérant avoir été clair
bonjour,
* maintenant, vous avez 4 possibilités de lancer la macro, 3 boutons et SHIFT+CTRL+P (apparament après le bouton mauve, il fait séléctionner une cellule avant qu'il soit active de nouveau).
Je ne connais pas d'autre manières, donc prenez le meilleur.
* ce ne sont plus les noms, mais les numéros (index) qui sont important
* pour ces combinaisons interdit, j'espère que cela vous convient.
re,
aucun des 4 options fonctionne, ils sont tous le même erreur ?
* est-ce que vous pouvez me retourner le fichier que vous travaillez avec ?
* Vous n'êtez pas un fan de "option explicit" ?
Bonsoir
Le problème de message d'erreur a été solutionné .Hélas plusieurs fonctionnalités ne fonctionnent pas, dans le 1er tableau "Liste des Personnes" les 20 index n'apparaissent pas dans les combinaisons générées de façons équitables :De 41 fois à 0 , il faut que sur la période sélectionnée les index apparaissent équitablement.
| 1 | CLI | 41 |
| 2 | agent 02 | 38 |
| 3 | Mickey | 34 |
| 4 | Mouse | 28 |
| 5 | agent 05 | 24 |
| 6 | bsalv | 26 |
| 7 | agent 007 | 0 |
| 8 | agent 08 | 16 |
| 9 | agent 09 | 15 |
| 10 | Agent avec nom long | 11 |
| 11 | agent 11 | 11 |
| 12 | Bush | 5 |
| 13 | Trumph | 4 |
| 14 | Biden | 5 |
| 15 | Obama | 2 |
| 16 | Clinton | 0 |
| 17 | Boris Johnson | 0 |
| 18 | Macron | 0 |
| 19 | Le Pen | 0 |
| 20 | Poutin | 0 |
On peut modifier une période début , Fin ,
| à partir du | 01/01/2022 |
| jusqu'au | 01/01/2023 |
mais lorsque l'on lance la macro rien ne change ex : si on choisit du 1er janvier 2022 au 1er février 2022 , les combinaisons qui apparaissent dans le tableau planification sont toujours du 3/01 au 30/12/2022.
Le bouton numéro 2 ne fonctionne pas le calendrier suffit .
Lorsque l'on exclut un index sur une période il n'y a que sur cette période qu'il ne doit pas apparaitre , il faut qu'il soit réparti équitablement en fonction de son temps de présence mais réparti (Pas 5 fois ... sur une semaine à son retour ..
Pour le tableau Absences et vacances ne garder que les dates à partir de jusqu'à (avec la possibilité de ne choisir qu'une seule journée :Exemple A partir du 1/1/2022 jusqu'au 1/1/2022 (Inutile de mettre des jours de semaine )
| absences et vacances | |||
| index | a partir de | jusqu'à | |
| 5 | mardi | ||
| 6 | vendredi | ||
| 7 | 01/01/2022 | 01/02/2022 | |
| 8 | 01/01/2022 | 31/03/2022 | |
En ce qui concerne les combinaisons interdites ça à l'air de fonctionner
Je vous remercie pour votre travail et votre patience
* le comptage était faux parce qu'il ne compte que la première des 3 colonnes et il comptait des parties des noms, comme par exemple "Cli" et "Clinton", quand il compte les "Cli" le résultat était "Cli"+"Clinton".
* les 2 boutons sont disparus
* la colonne D = nombre de jours abscent & "/" & nombre de jours de travail. voir fichier
par exemple, on voit là pour "agent 08" 10 fois sélectionné et 195 jours abscent des 260 jours de travail. Les autres ont 40-41 fois été sélectionné.
le calcule 10 / (1 - (195/260)) = 40 = la moyenne, donc okay.
Puis filtrer "08" dans la cellule U2 et vous verrez que 08 est sélectionné tout les 8-10 jours. (en réalité 1 selection tous les 6.3 jours de travail)
BsAlv
Un grand merci tout à l'air parfait !
Ce fichier me sera bien utile .
Bonne soirée

