Tirage aléatoire dans une liste, sous plusieurs contraintes

Bonjour le Forum! (ca fait un moment!)

J'ai un projet qui risque de me (vous) faire faire des cheveux blancs!

Rapidement :

Dans mon service, nous devons à tour de rôle, par demi journée, être veilleur d'astreinte en conservant un téléphone portable avec soit pour pouvoir répondre aux appels.

Le roulement se fait en fonction du nombre de personnes dans le service, en fonction des congés, et en fonction des rendez-vous ou autres indisponibilités.

Les plannings d'astreinte sont faits à la main sous Excel, et à chaque fois, je mets presque 4 heures à sortir le planning pour 2 mois, car, il faut que je manipule plusieurs fichiers, que je scrute scrupuleusement les congés des uns et des autres, tenir compte des indisponibilités etc etc etc

Dans un mois, le service va doubler de taille (fusion de deux services en un). L'idée est donc de planifier les gens par demi-journées, mais automatiquement...Ambitieux...

Je vous laisse voir la tête de mes tableaux

https://www.excel-pratique.com/~files/doc/Planning_astreinte.xls

Et dites moi ce que vous en pensez, si c'est réaliste, ou pas.

Merci beaucoup!!!

8)

En faite cela est réalisable mais il faut changer quelques petites chose.

Dans un premier temps enlève le mot aléatoire et utilise l'ordre alphabétique de tes agents. Le mode aléatoire va avoir lieu lui même.

Je m'explique si l'agent2 est en congé le mardi il ne peut tourner alors c'est l'agent3 qui prendra sa place et le mercredi tu recommence ton choix sur l'ordre alphabétique et le premier qui n'aura pas tourné sera l'agent2 donc il tournera le mercredi à la place de l'agent3. Et ainsi de suite en mettant dans ta boucle de macro tous les agent ainsi sur un mois ils auront tous tournés avant de refaire un tour ( à moins que l'agent ne parte plus d'un mois consécutif en permission).

Pour les graphiques de présence, les couleurs c'est bien mais dans les case écrit une valeur. (exemple 1 pour le rouge, 2 pour le vert, 3 pour le jaune,...)

Ainsi tu pourras même savoir le nombre de jour d'AA ou de congé ou...

Sur ton calendrier les cases grise donne leur la valeur 1 avec une mise en forme automatique que si la valeur = 1 alors la cellule se met en gris écrit en gris.

Dans ta futur macro donne la valeur 1 en colonne AH pour les cellules correspondant à ton agent dont tu viens de prendre le nom pour le premier tour et rajoute en AI5=EQUIV(MIN(AH7:AH36);AH7:AH36;0)+6 (pour avoir la première plus petite valeur qui te donnera le nom du second agent pour le second tour. Si tu veux je peux te faire la macro ou te l'expliquer sur ton fichier joint (car là je manque de place)

Re-salut à tous

Salut Eric2008

Merci pour ta réponse, je suis déjà un peu rassuré sur la faisabilité de mon projet.

Premier problème : je suis très nul en VBA. Je comprends les macros en général avec un peu de temps, mais je ne sais pas en créer moi même.

Je veux bien collaborer avec toi (et les autres bien sûr!) au maximum de mes connaissances. Si tu veux te lancer dans une macro, je serais très heureux. Je ferai de mon mieux pour t'aiguiller, et pour t'aider.

Pour tes remarques, elles sont judicieuses. En revanche, placer des gens les week end et le vendredi après-midi en gris sur fond gris (donc invisible) était bien vu, mais j'ai peur que cela raccourcisse la récurrence d'apparition d'un agent donné.

On verra ça.

A+ et merci à tous ceux qui passeront un peu de temps avec moi pour ce projet!

EDIT : désolé pour le temps, je rentre de congés 8)

EDIT 22/04/2009 : nouveau fil simplifié :

https://forum.excel-pratique.com/viewtopic.php?p=63142#63142

je mets en résolu celui là

Rechercher des sujets similaires à "tirage aleatoire liste contraintes"