Rotation d'équipe

Boonjour,

Je souhaite réaliser une rotation d'équipe aléatoire en fonction des habilitations de chaque personne.

J'ai donc réalisé un tirage aléatoire mais je ne sais pas comment réaliser l'attribution des postes en fonction des compétences et des absents du jour. L'extraction des compétences se fait à partir d'un logiciel, il est donc copié/collé sur la feuille excel.

Les personnes avec un 6 devant le poste signifie qu'ils sont habilités et seulement les 6 doivent être pris pas les 7.

Ci joint le fichier, si vous avez des suggestions je suis preneur car je sèche un peu beaucoup...

Cordialement

Antoine

Bonsoir,

Je ne vois pas comment tu signales les absents ! En tout état de cause, si tu as 24 postes à couvrir avec 28 personnes, tu ne saurais avoir plus de 4 absents ! Et dans la mesure où il faut opérer par compétences, à cet égard déjà pour le poste 1 un problème se pose puisque seulement 4 compétents. Tu les utilises donc déjà tous chaque jour sur ce poste (4 rotations) et dès qu'il y a un absent tu ne peux déjà pas couvrir toutes les rotations du jour !

Il y aurait donc des règles à préciser pour savoir comment tu fais !

On peut penser hormis ce problème, qu'il convient de tirer par poste en fonction des compétences, en tirant par poste dans l'ordre du nombre croissant de compétences (de celui qui en dispose le moins à celui qui en dispose le plus, et ensuite ceux ne réclamant pas de compétences). Cela va compliquer un peu si on doit avoir quelqu'un de différent sur chaque rotation du jour, du moins tant qu'on le peut.

Cela oblige à gérer les disponibles sur chaque rotation et à individualiser chaque liste de tirage par poste et rotation, ce qui aboutit à 96 tirages, à chaque fois sur un liste différente constituée pour le tirage, sachant qu'à chaque fois on reverse les non tirés dans la listes de dispo. Un peu casse-tête mais ça doit pouvoir se faire.

Il faut donc juste définir ce qu'on fait lorsqu'on n'a plus personne à tirer pour couvrir une rotation sur un poste...

Cordialement.

Hey,

Alors oui tu as tout à fait raison il faut lancer le tirage en fonction des postes.

Alors le Poste 1 est couvert sur deux créneaux en réalité. La personne qui est attribué au 1/4 au poste 1 est automatiquement envoyé au poste 1 aussi au 2/4.

Pour les absents je le ferais à la mains en réalité. je pense que cela serait plus simple.

Pour les critères :

  • Il faut que personne ne fasse le même poste deux fois de suite sauf pour le poste 1
  • Il faut que la personne qui soit au poste soit formé
  • Si l'effectif est supérieur au poste, il faut que la perssonne soit en formation ou 5S
  • Il faut que personne ne commence par le même poste qu'il a commencé la veille (je pense faire un onglet pour chaque jour et un fichier pour chaque mois)

Je pense que j'ai fait le tour des critères

Ok ! Il reste qu'au départ, il faut connaître les absents. Comment ?

(NB- les absents vont modifier les compétences par poste, donc modifier éventuellement l'ordre logique des postes lors du tirage.)

En outre, si on dispose de 24 personnes, chacun se retrouvera sur un poste lors des 4 rotations. Si on en a plus, certains ne seront pas tirés pour l'une ou l'autre rotation, pas gênant du point de vue du tirage. Mais si on dispose de moins, cela se traduira par des postes non couverts, ce qu'il faut donc prévoir.

-Si l'effectif est supérieur au poste, il faut que la personne soit en formation ou 5S

Ça je ne comprends pas ?

Ce que j'ai retenu c'est que les compétences étaient codées 6.

Ce à quoi j'avais pensé, pour les cas où l'on ne dispose pas de 4 compétences minimum pour la journée (outre le poste 1 à 4, le poste 10 à 5, qui ne recoupent pas les 4 actuellement mais ?, le poste 5 à 7 mais avec 3 communes avec le poste 10, qui pourrait donc se trouver réduit à 4 compte non tenu des absents...), j'avais donc pensé prendre pour les rotations non pourvues les déjà tirés, exemple si je ne peux tirer pour la rotation 4, je reprends le tiré de la 1. On peut savoir à l'avance pour le poste 1 dans la mesure où concerné par le premier tirage, mais on ne le peut plus par la suite, des tirages ayant eu lieu, je peux donc tomber sur un poste où au tirage rotation 2 je n'ai plus qu'un candidat, on le tire donc, mais pour la rotation 3 à la suite je peux me trouver disposer de 3 candidats parmi lesquels tirer...

Ne pas commencer par le poste de la veille sera un critère de plus à intégrer. Mais il convient de conserver un onglet spécifique pour le tirage, donc si tu envisages un onglet par jour, il faudra prévoir un transfert du tableau de tirage sur l'onglet du jour...

Les apsects sont connus quelques minutes avant seulement, il faut que je puisses indiquer que la personne est absente. On peut créer une fonction du genre si l'ABS est indiqué dans une cellule ne pas utiliser cette opérateur et cela est trop compliqué je le supprime simplement de la liste.

Ensuite si l'effectif est trop important je mets la personne en formation tout simplement. Il y aura aucune précision au niveau de son nom car tous les postes sont occupés.

Si la personne n'a pas 4 habilitations elle va réaliser forcément deux fois dans la journées le même poste ce qui est normal.

Le meilleur des cas c'est que si la personne maitrise le poste 1,2 et 3 elle fera le cycle suivant

1/4 = 2 | 2/4 = 1 | 3/4 = 3 | 4/4 = 2

Et si le programme n'arrive pas à tirer une personne par poste car les dernières personne qui lui reste ne sont pas former, il faut recommencer le tirage

Bonsoir,

regarde si le sujet ci-après n'apporte pas une réponse à tes besoins.

https://forum.excel-pratique.com/viewtopic.php?f=3&t=52363&p=602727&hilit=planning+selon+disponibilit%C3%A9s#p602727

Bonjour,

Je te livre un premier essai, je ne sais si je colle avec tous tes critères...

Commençons par les modifications que j'ai apportées à ta feuille : introduction de colonnes (masquées : il me faut stocker les données veille ainsi que le tirage jour, qui sera basculé en veille lors d'un nouveau tirage jour, je conserve aussi les noms correspondants, pour le cas où des suppressions dans la colonne noms (col. R maintenant) modifierait l'ordre numérique des noms : procédure pour mettre à jour la situation veille que j'écrirai ultérieurement si le système convient...),

un bouton supplémentaire pour recommencer le tirage au cas où le premier a abouti mais ne conviendrait pas pour diverses raisons (si le tirage est interrompu, on continue d'utiliser le bouton normal car les données antérieures n'ont pas encore été éliminées...),

la plage (colonne) Noms est nommée en dynamique (Liste), ce qui lui permettra de varier éventuellement en longueur,

dans le souci d'avoir un maximum d'adaptativité, le nombre de postes est fixé dans une constante : NbP où l'on pourra le modifier (étant entendu que les postes sont numérotés de 1 à NbP et se succèdent dans cet ordre dans le tableau de Tirage).

nb- Pour les postes à compétences, qui figurent en ligne 1 du tableau des compétences, leur numéros sont pris sur cette ligne par procédure, qui constittue ensuite la liste des postes ne figurant pas dans ce tableau par différence (autrement dit dans ce tableau, les postes peuvent être différents des 1 à 13 actuels et peuvent être dans n'importe quel ordre, et si on en ajoute, ils seront pris en compte...)

Au départ il est demandé à l'utilisateur de sélectionner les absents dans une liste, le tirage ne débutera pas tant que le nombre de personnes supposées présentes ne sera pas égal au nombre de postes prévus (en cas d'un effectif inférieur au nombre de postes, il faudra donc réduire le nombre de postes à couvrir !).

Lorsque le programme ne peut plus tirer, il essaiera de reprendre celui du /4 précédent s'il le peut. S'il ne peut pas, il s'interrompt en le signalant, et fournit le tableau tiré jusqu'au point où il est parvenu, ce qui devrait permettre d'examiner les raisons du blocage, déceler des anomalies...

Ne me sentant pas en mesure de simuler mentalement si des blocages pouvaient ou non survenir dans la zone de postes sans compétence requise, j'ai généralisé ce dispositif d'interruption sur l'ensemble des tirages .

Je ne peux considérer l'avoir testé mais il m'a cependant servi lors du débogage : blocage répété systématiquement au même point avec des résultats de tirages aberrants, ce qui m'a permis d'aller voir rapidement où j'avais une erreur d'utilisation de variables dans la constitution de tableau...

Je n'ai pas le temps de commenter le programme maintenant, ce qu'il faut savoir lorsqu'il est question de liste de personnes disponibles, à tirer, déjà tirées... ces listes sont en fait des chaînes de caractères : le numéro d'ordre de chacun (1 à 28) est converti en caractère sur la base Chr(numéro + 32) de façon à éliminer les caractères de contrôle et l'espace. Et on reconvertit en numéro d'ordre pour le tableau par Asc(caractère) - 32.

Je n'ai fait qu'un seul essai, après débogage, qui semble donner un résultat satisfaisant.

J'avais certes mis toutes les chances de mon côté en mettant en absence des personnes dépourvues de compétence.

Pas fait d'autre pour ne pas risquer d'être entraîné à chercher des explications sur telle ou telle anomalie qui pourrait survenir, me contentant du fait que le programme allait au bout !

Je te laisse examiner si ce système est susceptible de te convenir et il sera toujours d'examiner les problèmes particuliers qui pourraient survenir, mais demain je serai vraisemblablement peu disponible.

Cordialement.

hey,

Tout d'abord merci.

J'ai effectué plusieurs petit test et ça marche plutôt très bien au premier abord.

Je vais tout d'abord comprendre au maximum comment tu as codé la chose et je vais essayer de voir si toutes les caractéristiques sont respectés au niveaux des contraintes. Je reviens vers toi demain dans la journée.

En tout cas merci beaucoup pour ce que tu as fais, le code est bien plus complexe et structurer que ce que je peux développer par moi même.

Bonjour,

Le code est en fait plus simple qu'il n'y paraît. Une procédure principale (TirageJour) dont un certain nombre d'action sont externalisées dans des procédures satellites (4 Function et 1 Sub) : ce type de programmation modulaire permet d'éviter une procédure principale fleuve qui fait tout elle-même... en quelque sorte c'est le maître d'oeuvre qui suit le fil du déroulement, dévolue un certain nombre de tâches un peu consistantes à des adjoints, assure la coordination et de menus raccords. On peut ainsi en principe mieux voir la structure du programme.

Ce qui peut un peu compliquer la perception, c'est d'une part que les données concrètes ne sont pas prise 'en dur' mais sous forme variable de façon à pouvoir intégrer plus aisément des modifications ultérieures. On ne part pas sur 24 postes à pourvoir, mais sur un nombre de postes définis dans une constante, que l'on pourra donc faire varier en modifiant la valeur de la constante. On ne part pas non plus avec 13 postes à compétences requises, mais on prend le nombre de postes apparaissant dans le tableau des compétences. On ne considère pas que ce sont de façon définitive les postes de 1 à 13, mais on récupère leur numéro dans la ligne d'en-tête, ainsi le nombre de postes à compétences peut évoluer et ils peuvent ne pas faire l'objet d'un groupe à numérotation continue...

D'autre part, en nommant une plage (ici la plage R3:R30, nommée Liste, et correspondant à la liste de noms), de façon dynamique, ce qui lui permet de varier en longueur en étant toujours couverte par le nom, outre la commodité d'utilisation que donne un nom, je l'utilise comme référence unique d'accès à toutes les données de la feuille. On peut ainsi modifier le nom de la feuille sans que cela ait la moindre incidence (Excel adaptera automatiquement la référence au nom donné), mais l'adressage étant réalisé en termes relatifs par rapport à cette plage, les adresses ciblant telle ou telle cellule ou plage n'apparaissent pas en référence absolues dans la feuille mais relativement à la plage nommée, ce qui oblige à quelques conversions pour les situer.

Les commentaires intercalés dans la procédure principale matérialisent le découpage des différentes phases du processus. Ces éléments de repérage devraient permettre de mieux t'y retrouver...

J'ai profité d'un intervalle mort dans mes obligations du jour... je reviendrais plus tard pour te décortiquer les différentes phases du processus, de façon que tu puisses évaluer avec certitude la façon dont les critères sont pris en compte (ou pas ! )

Bonne journée.

Bonjour,

Premier point pour faciliter la lecture du tableau c'est de tirer les postes en fonction des personnes et pas les personnes en fonction des postes. En gros il faut que ce soit le nom des personnes en colonne B et pas les postes. Dispatcher les postes et pas les personnes

Erreur de ma part sur la cahier des charges

Ci joint le fichier modifer. Je ne sais pas si ça demande un grosse modification...

Je vais regarder ce soir pour essayer de modifier la chose

Si tu veux faciliter la lecture du tableau à partir d'une liste de noms reprenant ta liste de base (col. R) pour avoir en regard de chaque nom les postes assurés, c'est un problème d'affichage !

Tu le résouds par une formule adaptée qui utilisera vraisemblablement INDEX et EQUIV (je n'ai pas regardé dans le détail) et trouvera l'information à partir du même tableau source de tirage.

Mais cela reste indépendant des modalités de tirage, cela ne concerne que la façon dont on affiche les résultats.

Au demeurant, si le tirage par poste paraît logique compte tenu des contraintes : on a des postes qui ne peuvent être assurés que par un nombre limité de personnes, le nombre de personnes pouvant assurer chaque poste est donc variable, et il est logique de commencer par couvrir les postes les plus difficiles à couvrir (le moins de personnes pour les couvrir), de façon à diminuer les risques de blocage.

A l'inverse, il faudrait établir une liste de postes susceptibles d'être assuré par chaque personne, mais quel critère retenir pour l'ordre de tirage : le nombre de postes susceptibles d'être assurés n'est pas un critère de priorisation car il ne peut garantir que les postes le plus difficiles à couvrir pourront être couverts. On accroîtrait alors les risques de blocage.

Cordialement.

Bonjour,

Du coup j'ai pu regarder un peu le fichier et voir par rapport a ma demande. J'ai fait une petite liste des choses modifier :

-Nécessiter d’avoir deux fois la même personne de suite au Poste 1 et le lendemain aussi. Au total la personne reste 8h au poste 1.

o Au jour J : 2/4 et ¾

o Au jour J+1 : ¼ et 2/4

Il faut donc un historique sur une journée pas que sur une demie journée

-Le fait d’ajouter un poste ne fonctionne pas. J’ai essayé d’ajouter un poste supplémentaire et d’affilier les formations mais cela n’a pas marché. Ci-joint un fichier de test

-Détail des postes :

o Poste 6 : 2 personnes

o Poste 7 : 2 personnes

o Poste 8 : 4 personnes

o Poste 9 : 2 personnes

Je pense que je vais dupliquer les compétences cela sera plus simple à moins qu’on puisse implanter un compteur sur ces postes

-Les personnes au poste 21,22,23 et en 24 sont toujours sur ce poste ils ne font pas de rotation. Cela se traduit par la création d’un poste 14 et d’un poste 15

Si tu as des remarques par rapport à ce que je viens d'écrire n'hésite pas

Rechercher des sujets similaires à "rotation equipe"