Comment répartir des tâches selon connaissance
Bonjour à tous,
Dans le cadre d'un projet pro je souhaite essayer d'automatiser l'attribution de tâche à une équipe j'ai donc fait une page code source avec un tableau de présence et un autre avec les différents processus et 1 si ils sont capable de le faire ou 0 si ils ne le sont pas.
Sur la page férvier 2024 pour chaque semaine il y a un tableau avec le nom du processus et le besoin pour la semaine à venir.
Je souhaite trouver un moyen pour faire une recherche a
utomatique pour voir si j'ai des techniciens qui sont disponibles et si oui déduire le besoin de leur disponibilité et le mettre dans la case disponibilité avec leur nom dans la case agent.
Voici un fichier exemple, si vous pouviez m'aider à me mettre sur le chemin car pour l'instant je ne sais pas comment faire ^^
Merci d'avance !
Salut, ton fichier est complexe, pourrais-tu préciser dans quelle feuille et quelle colonne il faut aller chercher les informations ?
Il te faut donc 8 formules, 2 par semaine ? Et à incrémenter sur les 8 lignes de Process.
re, pour le moment je ne sais pas exactement ce que vous demandez. Par exemple semaine 2 = J37 = 8.55 (mais il manque les 0.22 de J30) avec la distribution comme J30:J35. Donc si je met cela dans la feuille "Code Source" juste en dessous les compétences et avec l'aide de solveur, je reçois le tableau O29:X35. Il me manque 0.55 unites pour finaliser les demandes (mais Duc et Robin ne sont pas polyvalent assez).
Bonjour messieurs,
Merci beaucoup pour vos retours ! et voici plus de précision.
J'ai repris le fichier pour le rendre plus lisible, il y a maintenant une page tableau présence, une page tableau formation et la page de chacun des mois.
Le but étant, de venir regarder pour chacune des semaines les process, le temps nécessaire à leur traitement chaque jour et l'attribuer à un technicien qui métrise ce processus (info dans la page tableau formation si valeur =1 alors il métrise si =0 alors il ne métrise pas.
A la fin du processus dans la colonne disponibilité si nous avons les ressources disponible le but serait d'avoir la même valeur que dans la colonne par jour et le nom du ou deux agents en charge de la page dans la colonne agent.
Et pour finir le pourcentage de temps pris pour la réalisation de la tache serait enlevé au temps de travail de la semaine du technicien.
Un exemple :
En semaine 06 pour le process 01 il y a besoin de 0.22 agent semaine, si Julien métrise ce processus alors la disponibilité passera à 22%, son nom sera dans agent et son temps de dispo dans la page tableau présence passera à 0.78.
Est-ce que c'est plus clair ainsi ? :)
re,
feuille "temps traitement(2)"
B1 = la semaine
à partir de la colonne F et pour max 15 personnes
* ligne 2 = présence dans cette semaine
* tableau lignes 4 à 11 = formation
* tableau lignes 14 à 20 = présence combiné avec formation
* tableau lignes 23-29 = répartition des personnes avec l'aide de "Solveur"
C'est top merci ! Juste un détails lorsque je mets à jour la charge il arrive qu'il mette de la charge sur les membres non présent dans la liste, comment faire pour mettre à jour cela pour qu'il ne le prenne jamais en compte ? J'ai un peu essayé et le seul moyen que j'ai trouvé c'est du supprimer les colonnes
re,
maintenant VBA actualise la plage A22:B30 quand vous changez la semaine et puis utilise Solveur pour résoudre le problème.
Problème : semaine 6, pour les autres semaines "procès" se trouve dans la colonne du mardi, la semaine 6 est correcte ou les autres ?
J'ai modifié les présences des semaines 7 et 8 !!!!
Punaise j'avais pas vu ta réponse Merci beaucoup !
J'ai une ultime question, comme faire pour qu'il ne bloque pas sur une seule page sa recherche mais qu'il cherche sur toutes les pages qui se finissent par 2024 ?
De plus j'ai essayé de bouger la macro vers mon tableau d'origine et j'ai une erreur de compil pour la fonction solversolv, une idée d'où cela peut venir ?
Et on Sait jamais si vous savez comment coller le résultat du solveur dans la colonne disponibilité à côté du besoin :)
re,
maintenant la macro cherche dans toutes les feuilles qui contiennent "2024" dans leur nom, mais ce sera mieux de préciser cela encore. Après execution les résultats seront copié dans la colonne "disponibilité"
j'ai une ultime demande si jamais ça parle à quelqu'un j'essaye de lancer le solveur de manière automatique si une valeur est modifier mais je me retrouver avec un soucis au niveau des valeurs calculés, ce que je souhaites faire c'est si une des valeurs dans une sélection évolu, prendre les deux derniers chiffres d'une autre cellule les copier sur une autre page puis lancer une macro
cela fonctionne mais tourne sur plusieurs page.
à savoir que je souhaite vérifier plusieurs zone spécifique par page.
Voici un exemple de mon code sachant que dans celui-ci à partie du moment où il y avait une modification je lance ma macro pour toutes les plages de la fenêtre et je souhaite les séparer pour que chacune soit indépendante
Private Sub Worksheet_Calculate()
Static isCalculating As Boolean
' Vérifier si le calcul est en cours à cause du code
If Not isCalculating Then
Dim tempsTraitementSheet As Worksheet
Dim lastDigits As String
' Désactiver les événements pour éviter la récursion
Application.EnableEvents = False
' Récupérer les deux derniers chiffres de B23 et les copier dans B21 de la page "Temps traitement"
lastDigits = Right(ThisWorkbook.Sheets("Novembre 2024").Range("B23").Value, 2)
Set tempsTraitementSheet = ThisWorkbook.Sheets("Temps traitement")
tempsTraitementSheet.Range("B21").Value = lastDigits
' Lancer le Solveur
Call Solveur
' Répéter le processus pour les cellules I23, P23 et W23
lastDigits = Right(ThisWorkbook.Sheets("Novembre 2024").Range("I23").Value, 2)
tempsTraitementSheet.Range("B21").Value = lastDigits
Call Solveur
lastDigits = Right(ThisWorkbook.Sheets("Novembre 2024").Range("P23").Value, 2)
tempsTraitementSheet.Range("B21").Value = lastDigits
Call Solveur
lastDigits = Right(ThisWorkbook.Sheets("Novembre 2024").Range("W23").Value, 2)
tempsTraitementSheet.Range("B21").Value = lastDigits
Call Solveur
' Réactiver les événements
Application.EnableEvents = True
' Aller sur la page "Résumé annuel"
ThisWorkbook.Sheets("Résumé annuel").Select
End If
End SubMerci d'avance pour vos éclaircissements !
re,
votre event "calcule" devra faire des heures supplémentaires, il intervient à presque chaque changement.
J'ai ajouté 2 macros à "Thisworkbook" avec l'explication là dedans et un petit modif dans la macro "Solveur".
Je pense que comme çà toutes les modifications qui changent votre disponibilité seront traitées.