Automatiser les processus d’allocation des ressources, Excel VBA

Automatiser les processus d’allocation des ressources, Excel VBA
Automatiser les processus d’allocation des ressources dans Excel à l’aide de VBA implique
plusieurs étapes, de la saisie des données jusqu’à l’optimisation de l’allocation en fonction de
critères spécifiques. Ce processus peut inclure des éléments comme la répartition des tâches,
l’affectation de ressources à des projets en fonction de leur disponibilité, etc.
Je vais vous fournir un exemple détaillé de code VBA pour un scénario où l’on alloue des
ressources à des tâches en fonction de leur capacité, tout en respectant certaines contraintes
(par exemple, le nombre de ressources disponibles par tâche).
Scénario
Supposons que vous avez une feuille de calcul contenant :
– Des ressources disponibles (par exemple, employés ou machines) avec des
informations sur leur capacité et leur nombre d’heures disponibles.
– Des tâches à accomplir, chacune ayant un besoin spécifique en ressources.
Objectif
Nous voulons automatiser l’allocation des ressources aux tâches en fonction de la capacité et
des besoins.
Étapes à suivre
1. Saisie des données dans une feuille Excel.
2. Création de la macro VBA pour automatiser l’allocation des ressources.
3. Affichage des résultats dans une nouvelle feuille.
Structure de la feuille Excel
Ressource   Capacité par Heure  Heures Disponibles  Total Capacité
Employé A     5                               20                             100
Employé B     3                               30                             90
Tâche     Heures Requises Ressource Assignée
Tâche 1   50
Tâche 2   40
Code VBA

Sub AllocationRessources()
' Variables
Dim wsRessources As Worksheet
Dim wsTaches As Worksheet
Dim i As Long, j As Long
Dim resNom As String
Dim resCapacite As Double
Dim resDisponibles As Double
Dim tacheHeures As Double
Dim totalAlloue As Double
Dim tacheNom As String
Dim heuresRestantes As Double
Dim allocation As Double
' Références aux feuilles de calcul
Set wsRessources = ThisWorkbook.Sheets("Ressources")
Set wsTaches = ThisWorkbook.Sheets("Tâches")
' Boucle pour traiter chaque tâche
For i = 2 To wsTaches.Cells(Rows.Count, 1).End(xlUp).Row
' Nom de la tâche et heures requises
tacheNom = wsTaches.Cells(i, 1).Value
tacheHeures = wsTaches.Cells(i, 2).Value
heuresRestantes = tacheHeures
' Allocation des ressources à la tâche
For j = 2 To wsRessources.Cells(Rows.Count, 1).End(xlUp).Row
' Récupération des informations sur la ressource
resNom = wsRessources.Cells(j, 1).Value
resCapacite = wsRessources.Cells(j, 2).Value
resDisponibles = wsRessources.Cells(j, 3).Value
' Vérification de la capacité de la ressource
If resDisponibles > 0 Then
' Calcul de l'allocation possible pour cette ressource
allocation = WorksheetFunction.Min(heuresRestantes,
resDisponibles)
allocation = WorksheetFunction.Min(allocation, resCapacite
* resDisponibles)
' Mise à jour de l'allocation
wsTaches.Cells(i, 3).Value = wsTaches.Cells(i, 3).Value &
resNom & " (" & allocation & " heures) ; "
heuresRestantes = heuresRestantes - allocation
wsRessources.Cells(j, 3).Value = resDisponibles -
allocation
' Si toutes les heures de la tâche sont allouées, on passe
à la tâche suivante
If heuresRestantes <= 0 Then Exit For
End If
Next j
Next i
MsgBox "Allocation des ressources terminée!", vbInformation
End Sub

Explication du code
1. Définition des variables :
– wsRessources et wsTaches sont utilisés pour référencer les feuilles de calcul
contenant les ressources et les tâches, respectivement.
– Les autres variables sont utilisées pour suivre les informations sur les
ressources et les tâches pendant le processus d’allocation.
2. Boucle principale pour les tâches :
– On boucle sur chaque tâche dans la feuille des tâches, en récupérant le nombre
d’heures requises.
– La variable heuresRestantes suit les heures non encore allouées à la tâche.
3. Allocation des ressources à la tâche :
– On boucle sur les ressources disponibles. Pour chaque ressource, on calcule
l’allocation possible en fonction des heures restantes pour la tâche et de la
capacité de la ressource.
– Si la ressource a encore des heures disponibles, elle est affectée à la tâche avec
un nombre d’heures limité par sa capacité et la demande de la tâche.
– Les heures disponibles de la ressource et les heures restantes de la tâche sont
mises à jour après chaque allocation.
4. Mise à jour dans la feuille :
– Les ressources allouées sont affichées dans la colonne « Ressource Assignée »
de la feuille « Tâches ».
– Les heures restantes des ressources sont mises à jour dans la colonne « Heures
Disponibles » de la feuille « Ressources ».
5. Fin de l’exécution :
– Un message apparaît pour indiquer la fin du processus d’allocation.
Conclusion
Cette macro VBA permet d’automatiser l’allocation des ressources en fonction des besoins des
tâches et de la disponibilité des ressources. Vous pouvez adapter ce code à différents
scénarios (par exemple, avec des contraintes supplémentaires comme des priorités de tâches
ou des types spécifiques de ressources).

Facebook
Twitter
LinkedIn
WhatsApp
Email
Print
0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x