Tour de garde

GUY rrr

XLDnaute Occasionnel
Bonsoir le forum,

Dans le but d'établir un tour de garde rationnel, je souhaite automatiser cette tâche qui actuellement est manuelle afin gagner du temps, mais mes capacités m'en empêchent ...
Les bases sont posées mais je ne parviens non seulement pas à saisir la meilleure méthode à employer, ni la façon de la mettre en oeuvre.
Auriez-vous des pistes à me fournir pour m'aider à avancer ?
Ci-joint un fichier exemple qui reflète précisément mon fichier final de ce que je souhaite.

Merci d'avance pour vos propositions
 

Pièces jointes

  • Tour de role.xlsm
    22.9 KB · Affichages: 23

GUY rrr

XLDnaute Occasionnel
Bonsoir CISCO, le forum,

Merci de vous pencher sur ma demande.
Ce que je veux dire par là, c'est que les deux (ou plus) personnes qui devront travailler le dimanche feront systématiquement partie de la liste de la journée précédente, à savoir le samedi.
Par exemple, les deux personnes (PS16 et PS4) qui ont travaillé le dimanche 22/12/19 auront systématiquement travaillé la veille (il ne s'agira pas forcément des 2 premiers du samedi).
Souhaitant avoir été un peu plus clair.

Merci
 

GUY rrr

XLDnaute Occasionnel
Bonsoir CISCO, le forum

Tout d'abord je tiens à souhaiter de bonnes fêtes à toutes et tous.
Pour vous répondre, oui, dans le meilleur des cas, il faudrait équilibrer les tours de garde en prenant soin de faire faire un maximum de 3 gardes / mois ... De mon côté, je tente de réfléchir à faire quelque chose par formule ... que je pense largement perfectible ...

Si besoin, n'hésitez pas à me poser d'autres questions.

Merci
 

GUY rrr

XLDnaute Occasionnel
Bonsoir le forum,

Après plusieurs tentatives "j'ai réussi à imaginer" une méthode afin d'arriver à quelque chose qui pourrait fonctionner, mais ... je n'arrive pas à simplifier la procédure.
Je joins mon fichier test pour une éventuelle simplification ou autre proposition.
Auriez-vous des pistes à me fournir pour m'aider ?

Merci pour votre aide
 

Pièces jointes

  • TEST Tour de role.xlsm
    32.6 KB · Affichages: 4
Dernière édition:

CISCO

XLDnaute Barbatruc
Bonsoir

De mon coté, j'ai aussi fait quelque chose. Le principe :
On donne :
* pour les deux premières cellules des dimanches, dans WE!C1:L1, le nombre de garde déja effectuées par les personnes ayant travaillé le samedi précédent, augmenté d'un petit ALEA pour différencier les ex-aequo.
* pour les autres cellules, dans BDD!AD2:AD31, le nombre de garde déjà effectué par les personnes de la liste P13, augmenté d'un petit ALEA pour différencier les ex-aequo.
Dans la formule, on prend les personnes ayant effectué le moins de garde jusque là.

Attention, cela ne fonctionne pas simplement. Il ne faut pas tirer les formules vers le bas et hop, c'est fini. Malheureusement.
1) Il faut sélectionner la plage WE!C3:L3 et la tirer (=copier/coller) vers le bas sur une nouvelle ligne.
2) Il faut ensuite copier les valeurs WE!C3:L3 et coller ses valeurs sur place.
3) Ensuite, il faut sélectionner WE!C4 et appuyer sur Fn9 pour actualiser les plages WE!C1:L1 et BDD!AD2:AD31 (puisque les calculs dans ses plages sont faits en fonction de la plage au dessus de la cellule active. Ici, lorsque la cellule WE!C4 est active, c'est la plage C2:L3 qui sert de base)

Et on recommence :
1bis) On sélectionne la plage WE!C4:L4 et on la tire vers le bas sur une nouvelle ligne
2bis) On copie les valeurs WE!C4:L4 et on les colle sur place
3bis) On sélectionne WE!C5, on appuie sur Fn9 (autant de fois que désiré, car à chaque fois, les ALEA() donnent des valeurs différentes)...

Et ainsi de suite. Si une petite macro faisait ces 3 étapes automatiquement, cela serait mieux :)

Dans le fichier joint, le "travail" est fait jusqu'à la ligne 9

@ plus

P.S 1 : Cf. la définition des noms dans le gestionnaire de noms
P.S 2 : Pour repérer facilement les samedi de la colonne A, j'ai mis le nom des mois dans la colonne B
 

Pièces jointes

  • Tour de rolebis.xlsm
    25.7 KB · Affichages: 13
Dernière édition:

GUY rrr

XLDnaute Occasionnel
Bonjour CISCO, le forum,

Proposition intéressante :).
Cependant, à l'utilisation, je note que pour le dimanche 22/12/19, C9 et D9 reprennent aléatoirement du personnel de la veille mais à partir de E9, ce n'est plus le cas. Cela est-il voulu ou s'agit-il d'un élément non pris en compte ?
Je note aussi qu'une fois les valeurs figées, si je dois ajouter, pour une raison X ou Y du personnel sur un jour donné, les changements ne sont pas pris en compte jusqu'à la fin (ex: sur le 29/12/19, j'ai rajouté après coup 2 personnes pour la veille en K11:L11 et le calcul aléatoire des 2 premiers personnels du 29/12/19 ne prend pas en compte jusqu'en L11). Je joins le fichier test pour vérification.
Mis à part ceci, je pense que l'esprit de ce que je souhaite est cerné, de plus, je pense comme vous qu'une macro simplifierait la procédure ;) .
Sinon, que pensez-vous de mon début de méthode à améliorer ?

Merci pour vos retours propositions
 

Pièces jointes

  • Tour de rolebis1.xlsm
    25.1 KB · Affichages: 6
Dernière édition:

CISCO

XLDnaute Barbatruc
Bonjour CISCO, le forum,

Proposition intéressante :).
Cependant, à l'utilisation, je note que pour le dimanche 22/12/19, C9 et D9 reprennent aléatoirement du personnel de la veille mais à partir de E9, ce n'est plus le cas. Cela est-il voulu ou s'agit-il d'un élément non pris en compte ?
C'est voulu : Après avoir choisi deux personnes ayant déjà travaillé le samedi précédent, la formule va "piocher" dans la liste P13 les personnes ayant effectuées le moins de garde jusque là, sans tenir compte du fait qu'elles aient, ou pas, travaillé le samedi.
Je note aussi qu'une fois les valeurs figées, si je dois ajouter, pour une raison X ou Y du personnel sur un jour donné, les changements ne sont pas pris en compte jusqu'à la fin (ex: sur le 29/12/19, j'ai rajouté après coup 2 personnes pour la veille en K11:L11 et le calcul aléatoire des 2 premiers personnels du 29/12/19 ne prend pas en compte jusqu'en L11). Je joins le fichier test pour vérification.
Si je ne me trompe, si tu changes des données, elles devraient être prises en compte uniquement dans la dernière ligne (puisque c'est la seule qui contient des formules) si tu appuies ensuite sur Fn9 après avoir sélectionné une des cellules de la dernière ligne.

Effectivement, cela serait mieux avec une macro, mais cela est hors de mes compétences actuelles.

@plus
 

GUY rrr

XLDnaute Occasionnel
Bonjour CISCO, le forum,

Meilleurs vœux à toutes et tous.
Désolé pour ma réponse tardive, car je n'avais pas de disponibilité.
C'est voulu : Après avoir choisi deux personnes ayant déjà travaillé le samedi précédent, la formule va "piocher" dans la liste P13 les personnes ayant effectuées le moins de garde jusque là, sans tenir compte du fait qu'elles aient, ou pas, travaillé le samedi.
Pour les dimanches, est-il possible de ne reprendre aléatoirement que les personnes ayant travaillé la veille, car il s'agit là d'un impératif.

Merci pour votre retour
 

GUY rrr

XLDnaute Occasionnel
Bonsoir CISCO, le forum,

UN GRAND MERCI pour votre retour et pour votre proposition qui me convient très bien :).
vous me permettez d'avancer dans mon projet avec une méthode différente, mais fonctionnelle ...
Je vais néanmoins ouvrir une autre discussion avec encore une méthode différente afin d'avoir un fichier dynamique et des données "non figées" pour éventuellement tester les deux processus et voir à l'usage.
Une fois de plus, heureusement que des passionnés prennent sur leur temps afin d'aider des lambdas à concrétiser leurs projets.

Encore UN GRAND MERCI à vous ;).
 

Discussions similaires

Réponses
2
Affichages
327

Membres actuellement en ligne

Statistiques des forums

Discussions
312 963
Messages
2 093 998
Membres
105 906
dernier inscrit
aifa