Affectation automatique

Doudou45

XLDnaute Junior
Hello ami(e)s du forum,

Je cherche à créer un petit outil d’affectation automatique, capable de « distribuer » 3 tâches (Tâche 1, 2 et 3) sur 2 activités et un ensemble de salariés et ceci en fonction de 2 règles de gestion :
Tableau 1 --> Pour l’activité 1, il faut: 1 Tâche 1 + 1 Tâche 2 + 1 Tâche 3
Tableau 2 --> Pour l’activité 2, il faut: 2 Tâche 1 + 2 Tâche 3

L’idée est que en appuyant sur un bouton, la macro distribue un de ces 3 libellés dans le tableau associé (tableau 1 avec règle de gestion 1 OU Tableau 2 avec règle de gestion 2) ET à condition que la cellule soit VIDE (j’insiste sur ce dernier point)

Auriez-vous une idée du comment faire ? un grand merci par avance à vous,

Amicalement.
 

Pièces jointes

  • Exemple affectation.xls
    34.5 KB · Affichages: 106

Modeste geedee

XLDnaute Barbatruc
Re : Affectation automatique

Bonsour®
en fonction de 2 règles de gestion :
Tableau 1 --> Pour l’activité 1, il faut: 1 Tâche 1 + 1 Tâche 2 + 1 Tâche 3
Tableau 2 --> Pour l’activité 2, il faut: 2 Tâche 1 + 2 Tâche 3

L’idée est que en appuyant sur un bouton, la macro distribue un de ces 3 libellés dans le tableau associé (tableau 1 avec règle de gestion 1 OU Tableau 2 avec règle de gestion 2)
j'ai supposé que la répartition doit être équitable :
i.e. il n'y a pas de tâche réservée ou interdite à un employé
sur une période donnée chacun aura effectué les mêmes nombres de tâches
ET à condition que la cellule soit VIDE (j’insiste sur ce dernier point)
je ne comprends pas cette restriction dans le cas d'une répartition équitable... :(

je n'ai pas intégré non plus l'affectation "X" ????????

nb :
j'ai des difficultés également à interpréter les semaines de 5 jours comprenant les samedi et dimanches ????
 

Pièces jointes

  • exemple-affectation.xls
    74.5 KB · Affichages: 85

CISCO

XLDnaute Barbatruc
Re : Affectation automatique

Bonjour

Une possibilité en pièce jointe, pas par macro, mais avec un tableau intermédiaire.

Soit tu te contentes du tableau intermédiaire, ou chaque tâche est représentée par une couleur, soit tu prends le tableau de droite.

Comme le résultat est obtenu à l'aide de la fonction ALEA(), à chaque fois que tu fais quelque chose sur cette feuille, un nouveau tirage au hasard est fait. Par conséquent, si tu veux garder les résultats, il te faut faire un copier-coller valeurs à chaque fois.

@ plus

P.S : Bonjour Modeste geedee
 

Pièces jointes

  • affectation-automatique-exemple-affectation.xls
    98 KB · Affichages: 111

Doudou45

XLDnaute Junior
Re : Affectation automatique

Hello,

Désolé pour cette réponse tardive.
Merci pour vos retours :eek:
Modeste Geedee, je pars plutôt sur ta création (cisco, merci qd même mais je dois partir obligatoirement sur de la macro et sans fonction ALEA...)
Pour revenir, ton modéle est pas mal du tout, laisse tomber les semaines, c'est moi qui ai fait une coquille...j'ai repositionné une nouvelle version plus "propre" !

--> j'ai supposé que la répartition doit être équitable -->Oui tu as bien fait, j'ai ajouté le nombre de tâche comptés à la fin. L'idée est bel et bien d'avoir une réparttion homogéne entre l'ensemble des salariés.

--> il n'y a pas de tâche réservée ou interdite à un employé -->Exact, c'est ça.

--> je n'ai pas intégré non plus l'affectation "X" -->Le X correspond à une absence et dans ce cas, c'est le dernier point manquant, il ne peut y avoir de tâche affectée sur le salarié ce jour-ci
J'ai remis en PJ une version légérement modifiée qui reprend la base écrite, modeste geedee, que faut-il modifier pour prendre en compte le critére du X, absence ?
Merci d'avance à toi.
 

Pièces jointes

  • exemple-affectation 2.xls
    47.5 KB · Affichages: 78

Modeste geedee

XLDnaute Barbatruc
Re : Affectation automatique

Bonsour®
J'ai remis en PJ une version légérement modifiée qui reprend la base écrite, modeste geedee, que faut-il modifier pour prendre en compte le critére du X, absence ?
Merci d'avance à toi.

en cas d'absence la tâche ne sera pas affectée, il faudra manuellement affecter celle-ci à un autre salarié,
le contrôle d'équité reste alors manuellement sous la responsabilité du gestionnaire...:rolleyes:
 

Pièces jointes

  • affectation-2.xls
    98.5 KB · Affichages: 70

Doudou45

XLDnaute Junior
Re : Affectation automatique

Ok merci de ton retour, le principe est bon. En revanche en regardant le code, l'ecriture ne se fait pas en cas de "X" ce qui correspond effectivement à une absence...mais dans la réalité, c'est un peu plus complexe, j'ai mis X pour representer un cas générique mais cela peut être "REU" pour réunion, "FOR" pour formation, "MAL" pour maladie... il faudrait plutôt rentrer en synthaxe quelque chose comme si la cellule <> VIDE alors ecriture des Tâches 1,2 ou 3 plutôt que <> "X" cela prendrait tout les cas de figures...? Ton avis ?
(C'est pour cela que dans le CdC original, je precisais bien, uniquement si la cellule est vide ;)) Merci en tout cas, cela avance !
 

Modeste geedee

XLDnaute Barbatruc
Re : Affectation automatique

Bonsour®
:rolleyes:
c'est cela même ...

VB:
Sub Bouton1_Clic()
Dim i As Integer, j As Integer, k As Integer
Application.ScreenUpdating = False
For i = 0 To 20
'ACT
        For j = 0 To 7
        If Cells(6 + j, 3 + i) <> "REU" _
        And Cells(6 + j, 3 + i) <> "FOR" _
        And Cells(6 + j, 3 + i) <> "MAL" _
        And Cells(6 + j, 3 + i) <> "X" Then Cells(6 + j, 3 + i) = [ACT].Offset((j + i) Mod 8, 0)
        Next
'ACT2
        For k = 0 To 5
        If Cells(20 + k, 3 + i) <> "REU" _
        And Cells(20 + k, 3 + i) <> "FOR" _
        And Cells(20 + k, 3 + i) <> "MAL" _
        And Cells(20 + k, 3 + i) <> "X" Then Cells(20 + k, 3 + i) = [ACT2].Offset((k + i) Mod 6, 0)
        Next
Next
Application.ScreenUpdating = True

End Sub
 

Pièces jointes

  • affectation-3.xls
    93 KB · Affichages: 65

Doudou45

XLDnaute Junior
Re : Affectation automatique

Hello, encore merci de ton retour.
Aie Aie Aie, donc pas d'autres solution que de lister l'ensemble des cas d'absences possibles pour ne pas affecter de tâches ?
Est ce que le raisonnement inverse marcherait ? Cad--> If Cells = "vide" alors affectation ou alors If cells <> "vide" alors pas affectation ?

@+
 

Doudou45

XLDnaute Junior
Re : Affectation automatique

J'ai modifié le programme pour que l'ecriture se fasse uniquement si cellule vide, c'est OK.
En revanche, il y a un soucis, même lorsque 6 agents sur 8 sont présents par exemple sur l'activité 1, il y a des cas où l'automate ne positione que 1 tâche 1 et 1 tâche 3 et "oublie" la tâche 2...hors il faut bien au minima les 3 tâches sur l'ACT1...idem sur l'activité 2 avec 2 tâches 1 et 2 tâches 3...? Avec une boucle cela peut-il corriger le pb ?
 

Modeste geedee

XLDnaute Barbatruc
Re : Affectation automatique

Bonsour®
pour l'équité l'affectation des tâches se fait par décalage(roulement)
il aurait été possible d'utiliser une autre règle...
l'algorithme d'affectation aurait été également totalement différent.

comme dit précédemment :
en cas d'absence la tâche ne sera pas affectée, il faudra manuellement affecter celle-ci à un autre salarié,
le contrôle d'équité reste alors manuellement sous la responsabilité du gestionnaire...

dans le cas présent et pour un automatisme
il faudrait définir la règle de réaffectation ... ?
- nombre de salariés suffisant pour les tâches du jour ?
- tâche facultative ?
- comptabilisation par salarié des quantités de tâches déjà effectuées ?
 

Doudou45

XLDnaute Junior
Re : Affectation automatique

Hello,
Aie, Désolé si mon cahier des charges n'était pas clair, cela me paraissait un peu trop simple pour le coup...bon essayons de reprendre au début alors (si tu veux toujours me filer un coup de main bien sûr !)
Il y a donc pour chaque activité une règle de gestion a appliquer :
- pour l'activité 1, il faut au minima 1 tache 1, 1 tache 2 et 1 tache 3. Donc en théorie il nous faut au minima 3 salaries pour assurer cette activites . il faudrait également dans l'idéal, qu'en fonction des semaines, oui, il puisse avoir une équité de l'affectation : par exemple, salarie 1 --2 taches 1, 2 taches 2, 2 taches 3, salarie 2, idem (d'où les compteurs en fin de planning...) si il y a moins de 3 salaries le jour j alors le système n'affecte pas. Dans l'idéal et c'est peut etre le plus simple, l'automate doit être capable de "lire" le planning, par exemple, si j'indique et force dans le planning à un salarié une tache ( la tache 2 par exemple) l'automate ne doit affecter ce jours-ci uniquement tâche 1 et 3, la tâche 2 ayant déjà été affectée en "manuelle"
Rappel l'automate ne doit pas affecter sur une cellule non vide ( absence, formation...vu précédemment) en clair par rapport a le remarque précédente, il faut que la condition soit : etape 1) si cellule = non vide alors affectation et ensuite etape 2) lire le planing avant affecation voir si une tache n'a pas ete mise en manuelle (cf remarque precedente) et affecter les taches restantes pour valider la règle de gestion et assurer l'équité (au plus proche)
- la philosophie doit être la même pour l'activité 2 mais avec une règle de gestion différente a savoir 4 salaries au minimum et il faut 2 taches 1 et 2 taches 3... Est ce qu'avec ces éléments, la compréhension est plus simple ? C'est pas facile j'imagine...
Je vais essayer de faire une v5 demain avec le planning renvoyant des éléments statiques (lecture du planning au jour et renvoi des taches qu'il faut que l'automate affecte le jour, cela sera plus simple je pense deja !

Merci encore pour l'aide
@+
 

Doudou45

XLDnaute Junior
Re : Affectation automatique

Hello,

Bon j'ai pas mal avancé et voici en PJ la V5 du planning.
L'idée qui m'a semblé la plus simple est de faire "travailler" d'avantage en statique le tableau et en fonction des régles de gestion, d'afficher juste en dessous les tâches à affecter sur la journée.
L'automate doit donc au final "simplement" récupérer les 3 ou 4 champs (selon activités 1 ou 2) et de les affecter dans le tableau corespondant au dessus (en essayant de respecter au mieux l'équité avec l'aide des petits compteurs en bout de tableau)

Une idée pour m'aider ?
D'avance merci.
 

Pièces jointes

  • Affectation V5.xls
    62.5 KB · Affichages: 130

Discussions similaires

Statistiques des forums

Discussions
312 503
Messages
2 089 053
Membres
104 013
dernier inscrit
VELONDAHY Mickaël