Etablissement d'un planning selon disponibilités

Bonjour à toutes et tous, et en particulier à h2so4.

En train d'essayer de résoudre un casse-têtes mêlant volontariats et besoins variables en nombre de personnes sur plusieurs activités en parallèle, je découvre ce fichier avec un immense intérêt ! (et déjà merci infiniment :))

Dans un premier temps, j'aurais besoin de comprendre ce qui limite aujourd'hui le nombre maximum de périodes consécutives à 2 (j'aurais besoin de le passer à 6). Techniquement, modifier le contrôle limitant dans la macro est simple... mais je me doute que s'il est fixé ainsi, c'est qu'il y a une raison.

Question bonus (moins prioritaire) : j'ai parfois des volontariats qui couvrent des activités différentes selon les dates. Par exemple, X est volontaire sur l'activité A et B ce lundi, mais sur l'activité B uniquement le vendredi. Or aujourd'hui les spécialités (qui me font office de volontariats sur les activités) sont valables pour toute la durée couverte par le fichier... et si je sépare en 2 lignes, l'algorithme va les prendre comme 2 personnes différentes... existerait-il un moyen simple de gérer ce sujet ?

Merci d'avance pour votre éclairage ! :)

bonjour,

merci pour l'intérêt.

Limite à 2 prestations consécutives : SI l'on change le contrôle sur cette valeur, l'algorithme actuel de contrôle des prestations consécutives pourrait se terminer en erreur. Je pense qu'on pourrait éviter le problème en désactivant cet algorithme de contrôle (peu de travail), adapter l'algorithme est sans doute aussi possible mais il faut que je me replonge dedans (plus de travail). Si intérêt, je peux regarder la première option.

Question Bonus : je ne pense pas que cela soit possible sans adaptation des macros sous-jacentes. Une façon de faire serait de préciser l'activité dans le planning des disponibilités (au lieu d'un x), et adapter les macros en conséquence. Conceptuellement c'est assez simple, mais ...

Pour ce qui demande plus de travail, je jetterai un oeil dès que j'en ai l'occasion.

Merci pour ces premières réponses rapides.

J’ai un vrai intérêt à pouvoir contrôler le maximum 6 jours consécutifs (si une personne fait plus de 6 jours d’affilée le planning sera invalide sur le plan métier) avec 2 jours de repos, donc plutôt envie de ne pas enlever l’algorithme qui vise à le garantir. 🙂 À quoi est lié le risque d’erreur que tu mentionnes, plutôt en termes de puissance de calcul, par exemple, ou conceptuellement l’algo actuel ne sait pas faire au-dessus de 2 ?

Pour les x qui deviennent des spécialités, y ai aussi pensé ce matin. À se garder sous le coude !

bonsoir,

Si j’ai ajouté cette limite à 2, c’est que j’ai dû détecter un problème. Mais je ne me rappelle plus lequel ( une erreur dans certains cas). Si tu ne l’as déjà fait, tu peux toujours essayer d’enlever le contrôle et voir ce que cela donne.

bonjour,

une version de test (4.1) corrigeant certains bugs et apportant 2 améliorations.

1) fin de la limite à maximum 2 prestations consécutives (dans le cas où l'on désire fixer un maximum)

2) ajout d'une option pour la notation des disponibilités/indisponibilités

Bonjour à tous.

Merci h2so4 pour les mises à jour progressives du fichier.

J'aurais une demande concernant le tableau "Disponibilités".

Y aurait-il possibilité d'inverser la donne? C'est à dire. Les cellules vides dans le tableau signifie que l'agent est dispo. Lorsque l'ont renseigne une cellule c'est qu'il n' est pas indisponible.

Peut-on, pour des raisons de convivialités faire en sorte que l'agent est dispo si la cellule est renseigné?

Pourquoi?

- Car en général on récolte les dates des disponibilités des agents.

- En plus, lorsque nous recommençons un nouveau sicle, partir d'un tableau vide (en sachant qu'alors personnes n'est dispo) évitera des erreurs.

J'ai pensé a une valeur dans une cellule par exemple "DISPO" "INDIS" que la macro identifierait pour interpréter soit l'une soit l'autre méthode.

Voilà, c'était tout....

.....pour le moment...

En tout cas merci pour ce superbe fichier qui petit à petit répond vraiment à nos besoins.

bonjour,

Y aurait-il possibilité d'inverser la donne? C'est à dire. Les cellules vides dans le tableau signifie que l'agent est dispo. Lorsque l'ont renseigne une cellule c'est qu'il n' est pas indisponible.

cette possibilité est une des 2 améliorations de la dernière version de test (4.1 mise dans ce fil), cela correspond au point 2) ajout d'une option pour la notation des disponibilités/indisponibilités

voir instructions et feuille paramètres.

Extraordinaire! Je n'avais pas compris l'astuce.

Donc en résumé; en mettant "o" dans la cellule D8 de l'onglet paramètres, les "x" renseignés dans les colonnes des créneaux du tableau disponibilités sont des disponibilités, si "n", alors indisponibilités.

Remarquable merci. Très bonne "option"; Que dis-je. Très bon paramètre!

J'ai testé votre fichier de bien des manières. En modifiants tous les paramètres. L'algorithme fonctionne vraiment très bien, je n'ai pas trouvé de manquement à ce qu'elle propose de faire. Vraiment, très bon travail merci.

Elle arrive à me dispatcher mes 127 bénévoles sur une période de 30 jours avec 4 créneaux/jour le weekend (soit 56 colonnes/127 lignes) sans problèmes en respectant les règles demandés.

J'avance dans mon projet...

Merci et à bientôt

Bonjour LionSleep,

Merci pour ce retour !. J'en conclus que je devrais sans doute clarifier certaines instructions.

Dans la tête du concepteur tout est tellement logique que quels mots semble suffire pour expliquer les choses.

une nouvelle version des instructions revues par ChatGPT.

Merci pour la traduction.

Pourrai je poster sur ce fil de discussion 2 captures d’écran du tableau sur lequel je travaille (dans votre fichier) pour vous montrer quelles autres règles ou contraintes l’algorithme pourrait prendre en compte dans ces calculs ?

Notamment, autoriser ou ne pas autoriser des associations sur des créneaux qui se fond à deux. Par exemple : associer les couples qui veulent faire le créneau seulement avec leur conjoint ; ou bien que le week-end ou qu’en semaine ; ou encore les célibataires ensemble oui mais du même sexe et pas sur les créneaux de nuit…etc. La liste est longue.

Votre fichier gère parfaitement les dispatching des membres sur les créneaux qu’on peut lui imposer, j'ai tout essayé ça marche. Pour l’instant il ne prendre en compte la situation familiale de chacun. A venir sans doute.

Je n’imagine même pas combien cela doit être compliquer de mettre en œuvre.

bonjour,

autoriser ou ne pas autoriser des associations sur des créneaux qui se fond à deux.

je n'ai pas oublié cette demande. Mais jusqu'à présent, je n'ai pas encore trouvé le moyen de l'inclure dans le programme sans revoir fondamentalement sa manière de fonctionner.

Ok.

J'ai l'impression qu'un long chemin nous attends alors...

Très long.

Merci pour votre réponse

Bonjour h2so4.

Voilà, au bout de longues heures de détente sur excel, j'ai bien avancé dans mon projet de planning sur la basse de ton fichier.

Seulement, doit je poursuivre sur ce fil de discussion ou en créer un autre? Je ne sais pas pour 2 raisons. Premièrement, est-ce que ton objectif à toi, par rapport à ton fichier est rempli? Et deuxièmement, est ce que mon objectif est aussi ton objectif? La troisième raison le temps qu'on y ai, je me vois mal utiliser ton fichier sur une autre discussion.

Je m'explique. Grâce à un tableau à double entrée j'ai réussi à regrouper parmi les personnes enregistrées dans la basse de données qui pourra travailler ou ne pas travailler ensemble sur les mêmes créneaux et cela en fonction du sexe de la personne mais aussi du lien de parenté entre elles, jusqu'à 3 générations.

Par exemple: le gendre ne pourra pas être sur un même créneau que sa belle mère mais il peut accompagner sa grand mère soif de nuit...... Et ça marche!

Ainsi ton fichier pourrait être utile à plein d'associations car il fonctionnerait en associant non pas que des salariés entre eux au gré du hasard mais aussi ou pas entre des membres d'une même famille, ou des amis.

Il faudrait (juste) faire comprendre à ta macro 2 choses ou 2 conditions (simples).

1) s'il y a une croix dans le nouveau tableau (onglet "créneaux semaine") à l'interception de 2 personnes alors c'est qu'elles peuvent être sur le même créneau.

2) il faut toutefois que les 2 personnes soient dispos à la même date. (Tableau onglet "Disponibilités" S'il y a une croix au bon créneau et à la bonne date)

3) et une petite dernière condition au passage, privilégier les couples. Mais ça on peut en discuter.

Peut-être que quelques lignes de codes supplémentaires pourront faire tourner la bécane grâce à ces nouvelles données.

Je peux partager le fichier excel pour plus de visibilité. A toi de me dire.

J'espère expliquer clairement l'objectif que je souhaite atteindre et partager et surtout ne pas mettre la pagaille dans ton fil de discussion h2so4.

Au plaisir.

Bonjour,

L'amélioration de l'outil pour rencontrer des nouveaux besoins fait partie des objectifs, à la condition que je voie une solution faisable sur base de son algorithme actuel.

Le problème n'est pas dans la manière de noter qui peut aller avec qui (ta proposition via une nouvelle table), mais de faire en sorte que les différentes optimisations qui sont incluses dans l'algorithme actuel puissent encore fonctionner en ajoutant ces nouvelles contraintes et pour le moment je ne vois pas comment faire autrement que de revoir tout l'algorithme. Ce que je ne suis pas encore décidé à faire, j'attends l'illumination voire un miracle ;o).

Je comprend. Merci beaucoup.

Bonjour h2s04,

tout d'abord, félicitation, tu as fais un super boulot avec ce script.

L'année dernière, je cherchais ce genre d'outils pour notre équipe de garde (hôpital, labo, nuit) et après avoir testé moult sites en ligne (des gratuits, mais limité, des payants en essai, etc), un logiciel (très vieux et pas adapté) j'étais tombé sur ton script et j'avais été bluffé. Les circonstances faisaient que c'était resté à l'état de test.

Aujourd'hui, la situation a évolué chez nous et Je le re-teste depuis quelques temps pour notre équipe de garde. Les propositions de planning qu'il me sort sont ce qui se rapproche le plus de nos plannings définitifs. Il suffit ensuite de retoucher à la main.

Je me pose juste 2 questions sur lesquelles tu vas peut être pouvoir me répondre, juste un peu de contexte avant :

Chaque personne a un certain nombre de gardes à faire dans le mois, 4 personnes par jour, ces gardes ayant 4 horaires de début différents, chaque garde durant 12h. Le repos après une garde doit être d'au moins 12h. Dans ton script, les lettres de spécialité correspondent à chaque horaire (A=18h00, B=18h30, C=19h30, D=20h00).

- question 1 : serait-il possible que lorsque 2 gardes se suivent pour une même personne, le 2ème horaire soit au moins le même que le 1er ? Ex : sur 2 jours, "A C" est possible, mais "D B" impossible, pas 12h d'écart entre le début et la fin, sachant qu'on peut monter à 3 gardes de suite. "A B D", c'est bon, "B C A", pas bon. Enfin bref, tu vois le principe.

- question 2 : sur une des personnes, au lieu de mettre tout, j'impose seulement 2 spécialités/horaires sur 4 et du coup, après le calcul elle a 2X moins de gardes que les autres. Comportement normal ?

Alors je suis très clair sur ce que j'ai mis dessus : s'il y a possibilité de modifier le script facilement, ça m'intéresse, mais si c'est pas possible, trop compliqué, c'est déjà très bien comme ça, après tout, il faut bien qu'on travaille un peu , ça va déjà beaucoup nous aider. Pour la question 2, on rééquilibre à la main, c'est pas un gros souci en fait.

Encore merci pour ton travail.

Zigzig

bonjour,

merci pour les commentaires.

Dans ton script, les lettres de spécialité correspondent à chaque horaire (A=18h00, B=18h30, C=19h30, D=20h00).

le programme n'était pas prévu pour travailler ainsi, c'est astucieux.

je serais curieux de voir un exemple de ta mise en place.

Bonjour,

je rentre de garde . Je vais me coucher, je te détaille ça ce soir

Bonne journée

Rechercher des sujets similaires à "etablissement planning disponibilites"