VBA pour génerer un planning

hypo78

XLDnaute Impliqué
Bonjour à tous,

Après quelques mois d'absence me revoilà parmi vous pour vous exposer un nouveau problème.

J'aurais besoin de votre aide précieuse pour :
  • à partir d'une DATA contenant des noms de personnel et des compétences générer un planning automatiquement (voir exemple très simplifié ci-joint). Ce dernier devra contenir autant de ligne par personnel que ce dernier a de compétence.... pas clair ma phrase mais l'exemple est parlant ;)
  • une fois que ce planning est généré, il devient très difficile à manipuler car dans la réalité j'ai environ 300 personnels, d'où ma 2ème requête : lorsque je choisi ouvrir le planning COMP1, masquer les lignes des personnels n'ayant pas cette compétence, mais garder à l'affichage toutes les lignes se rapportant à l'agent ayant cette compétence.
 

Pièces jointes

  • planning.xlsx
    19.2 KB · Affichages: 71

Dranreb

XLDnaute Barbatruc
On ne masquera pas de lignes. Ça ne sert absolument à rien.
Le gestionnaire de planning ne pourra mettre une coche sur un agent pour une compétence ni si cette compétence est déjà assumée par un autre agent, ni si cet agent est déjà affecté à une autre compétence.
Tout ce qu'il pourra faire, s'il veut, c'est cliquer dans la cellule du titre "Compétences" pour avoir tous ensembles les agents ayant celle dont il s'occupe.
Il n'aura pas besoin d'aller voir ailleurs si un agent est déjà pris par une autre compétence ou s'il est indisponible: c'est signalé par un carré rouge sur fond rose et cliquer dedans restera sans effet.

Edit: Attention je viens de voir un bogue: la décoche d'une indisponibilité décoche tous les agents. Je regarde…

Vu. Il faut à la fin :
VB:
      For L = 1 To UBound(Tr, 1)
         If TNoms(L, 1) = Nom Or TCpts(L, 1) = Cpt And Cpt <> "Indisponibilité" Then Tr(L, 1) = Empty
         Next L: End If
   DBR.Value = Tr: End If
End Sub
Il manquait juste ça dans le test : And Cpt <> "Indisponibilité"
 
Dernière édition:

hypo78

XLDnaute Impliqué
Bonjour,

j'ai donc envoyé le fichier "test" à mes collègues pour savoir si on devait continuer dans cette voie.
ils sont tous très emballés par cette ébauche (je n'ai pas manqué de leur préciser que le travail n'était pas de moi).
l'un d'eux à tester un peu plus que les autres et voilà ses remarques :
Beau travail
Toutefois en regardant rapidement le tableau est son fonctionnement, j’ai observé que :
- Pour l’agent alpha il manque la compétence 1,
- La validation de la comp 10 de l’agent alpha propose la seconde cellule indispo de l’agent hotel,
- l’agent hotel dispose de 3 cellules indispo impliquant à 3 action différentes,
- la seconde cellule de la com 5 de l’agent Tango fonctionne comme une indisponibilité,
- toutes les compétences sont exclusives alors que certains doublons sont autorisés. Cela se traduit par la neutralisation de toute les cellules de compétences d’un agent dés lors qu’une cellule est validé,
- il n’est pas possible de sélectionner deux fois la même compétence pour deux agents différents d’où l’intérêt limité du losange vert sur fond bleu qui identifie pour une compétence sélectionné les autres agents disposant de la même compétence. Ace propos, la validation sur une même date de plusieurs compétence transforme le carré rouge sur fond rose en losange vert sur fond bleu est source d’erreur. A mon sens elle devrait resté rouge sauf pour les compétences cumulables et à condition que le quota ne soit pas atteint. Enfin une fois le planning bouclé et même si un agent s’est passé indispo, il aura sa cellule indispo validé croix rouge sur fond jaune et toute ses compétence noté par un losange vert sur fond bleu en lieu est place du carré rouge sur fond rose.Cela est également source d’erreur,
- que la dévalidation d’une action par double clic est très intéressante et évite les erreurs.

le problème c'est que je n'arrive pas vraiment (voir presque pas du tout) à comprendre votre code.

serait-il possible de le décortiquer ligne par ligne? de cette façon je serai peut-être capable de l'adapter.

Cordialement.

PS : en pièce jointe le classeur qui a servi à faire les tests qui ont amenés les remarques ci-dessus
 

Pièces jointes

  • Copie de PlanningHypo78.xlsm
    36.1 KB · Affichages: 70

Dranreb

XLDnaute Barbatruc
Bonjour.
De toute façon je pense que ça n'allait pas du tout. Il faut recalculer intégralement les petits carrés ou losanges à chaque changement et non essayer de retoucher seulement les lignes du nom et de la compétence de la ligne sélectionnée.
Je le rejoins. Somme nous bien d'accord qu'une compétence ne doit être mise en œuvre que par un seul agent au cours d'une journée ou d'une nuit ? Sinon ça pourrait peut être se simplifier un tout petit peu.

Remarque: la compétence COMP1 manquait à tous les agents parce que j'avais For C = 3 To au lieu de For C = 2 To. Je l'avais vu et déjà signalé au poste #18
 

Pièces jointes

  • PlanningHypo78.xlsm
    37.6 KB · Affichages: 49
Dernière édition:

hypo78

XLDnaute Impliqué
Bonsoir,
En principe oui c'est 1 seule compétence pour 1 seul agent, mais parfois quand certains sont en phase de formation, ils peuvent être 2. Si çà peut simplifier, aucun problème.
Je croyais avoir fait la modif du post#18, erreur de ma part.

Encore merci, cordialement
 

Statistiques des forums

Discussions
312 305
Messages
2 087 084
Membres
103 459
dernier inscrit
Arnocal