Calcul de la production optimale en fonction des capacités
Bonjour,
Vous trouverez dans le classeur suivants, un exercice.
Nous voulons trouvez pour une demande de production donné, quelle atelier faire tourner, combien d'équipes par atelier sans dépasser 3 équipes et produire le moins de stock possible.
Merci si vous avez des pistes, j'ai pensé aux matrices mais je ne gère pas assez Excel.
Bonjour,
Votre demande n'est pas très claire ou incomplète, raison probable pour laquelle vous n'obtenez pas de réponse.
Comment est réparti le nombre d'équipes par atelier ? Capacité de l'atelier divisée par 3 ?
Si j'ai bien compris, dans l'exemple du mois de MARS:
-les besoins pour l'atelier 1 sont de 25000 qui lui, à une capacité de 40392 , donc il peut tout absorber et reste 0 dans le stock.
-les besoins pour l'atelier 2 sont de 100000 qui lui, à une capacité de 53856 , donc les besoins étant supérieurs à la capacité de l'atelier 2, il ne peut absorber 53856 et reste 46144 dans le stock.
-les besoins pour l'atelier 3 sont de 50000 qui lui, à une capacité de 80874 , donc il peut tout absorber et reste 0 dans le stock.
il faudrait que vous donniez quelques exemples de résultats attendus, peut-être qu'à partir de là, vous aurez des réponses.
Cdlt
Comment est réparti le nombre d'équipes par atelier ? Capacité de l'atelier divisée par 3 ?
Dans chaque atelier nous pouvons affecter 3 équipes qui produiront chacune la capacité.
Exemple atelier 1 , 2 équipes alors 40392*2= 80784
Si j'ai bien compris, dans l'exemple du mois de MARS:
-les besoins pour l'atelier 1 sont de 25000 175000 qui lui, à une capacité de 40392 , donc il peut tout absorber et reste 0 dans le stock.
-les besoins pour l'atelier 2 sont de 100000 qui lui, à une capacité de 53856 , donc les besoins étant supérieurs à la capacité de l'atelier 2, il ne peut absorber 53856 et reste 46144 dans le stock.
-les besoins pour l'atelier 3 sont de 50000 qui lui, à une capacité de 80874 , donc il peut tout absorber et reste 0 dans le stock.
il faudrait que vous donniez quelques exemples de résultats attendus, peut-être qu'à partir de là, vous aurez des réponses.
Dans la PJ ce que j'ai fait, sans certitude, j'aimerais une solution qui résoudrait le problème directement
Le but est de chargé les ateliers en équipe sans dépasser 3 equipes par atelier et produire au mieux ( sans stock sauf si sur le mois prochain la charges ne peut etre supporter au vu d'une trop grosse demande) Compliqué ^^
Cdlt
Bonjours,
dernier fichier vierge ?
eric
le dernier fichier est vide
Arturo Concernant ta première remarque, tu verrat que si tu ne fais pas 135k de stock la production du mois prochain n'est pas assuré et ainsi de suite.
Le but étant de produire au mieux sans faire de stock superflus.
Aussi ma question principale est de découvrir un moyen de faire cet exercice automatiquement.
Merci de ta réponse
Bonjour,
Le but étant de produire au mieux sans faire de stock superflus
Si je comprends bien, pour faire ce que vous demandez, il faut connaître les besoins futurs pour pouvoir refaire les calculs sur les mois antérieurs.
Voici ce que fait le code suivant, attention les résultats sont différents des vôtres, mais à la fin et sur la totalité des mois le solde est inférieur à votre étude.
Question: comme on ne connait pas le solde avant le premier mois, j'ai considéré qu'on partait de 0.
Option Explicit
Dim NewStock As Long, Stock As Long, Stock_Precedent As Long, Prod_Max As Long
Dim i As Long, j As Long, k As Long, l As Long
Dim Tot1 As Long, Tot2 As Long, Tot3 As Long
Dim DerLig As Long, Capacite_Atelier1 As Long, Capacite_Atelier2 As Long, Capacite_Atelier3 As Long
Dim Besoin As Long, Total As Long, NwTotal As Long, Reste As Long
Dim Recalcul As Boolean
Dim Eq1 As Long, Eq2 As Long, Eq3 As Long
Sub Calcul_Nb_Equipes()
Application.ScreenUpdating = False
DerLig = Range("G" & Rows.Count).End(xlUp).Row
Range("H12:H" & DerLig).ClearContents
Range("J12:K" & DerLig).ClearContents
Capacite_Atelier1 = Cells(5, "I")
Capacite_Atelier2 = Cells(6, "I")
Capacite_Atelier3 = Cells(7, "I")
Reste = 0
Recalcul = False
Prod_Max = (3 * Capacite_Atelier1) + (3 * Capacite_Atelier2) + (3 * Capacite_Atelier3)
Stock_Precedent = 0
For i = 12 To DerLig - 2 Step 3
'If i = 12 Then
Stock = (3 * Capacite_Atelier1) + (3 * Capacite_Atelier2) + (3 * Capacite_Atelier3)
Tot1 = 0
Tot2 = 0
Tot3 = 0
Total = 0
Besoin = Cells(i, "F") - Reste
NwTotal = Prod_Max
If Besoin > Prod_Max Then BesoinSupProd
Calculs:
For j = 0 To 3 ' de 0 à 3 équipes
Tot1 = j * Capacite_Atelier1
For k = 0 To 3 ' de 0 à 3 équipes
Tot2 = k * Capacite_Atelier2
For l = 0 To 3 ' de 0 à 3 équipes
Tot3 = l * Capacite_Atelier3
Total = Tot1 + Tot2 + Tot3 'on fait le total
If Total >= Besoin And Total > 0 Then
NewStock = Total - Besoin ' on calcule le stock
If NewStock <= Stock And NewStock >= Stock_Precedent Then 'si le nouveau calcul de stock est inférieur au précédent résultat, on conserve cette valeur
Stock = NewStock
NwTotal = Total
Eq1 = j
Eq2 = k
Eq3 = l
End If
End If
If j = 3 And k = 3 And l = 3 Then 'on recommence tant que tous les tests ne sont pas passées
If NwTotal >= Besoin Then 'le stock mini est atteint
If Cells(i, "F") > Prod_Max Then
Cells(i, "H") = 3
Cells(i + 1, "H") = 3
Cells(i + 2, "H") = 3
Cells(i, "J") = Prod_Max
Else
Cells(i, "H") = Eq1
Cells(i + 1, "H") = Eq2
Cells(i + 2, "H") = Eq3
Cells(i, "J") = NwTotal
End If
Cells(i, "K") = NwTotal - Besoin 'Stock
If Cells(i, "F") < Prod_Max Then
Reste = Stock
Else
Reste = NewStock
End If
Stock_Precedent = Cells(i, "K")
Recalcul = False
GoTo MoisSuivant
Else 'la capacité totale des 3 ateliers ne suffit plus, il faut augmenter le stock du mois précdent avec la quantité manquante
BesoinSupProd
End If
End If
Next l
Next k
Next j
MoisSuivant: 'on passe au mois suivant
Next i
End Sub
Sub BesoinSupProd()
If i = 12 Then
MsgBox "Les besoins sont supérieurs à la capacité de production"
Exit Sub
Else
Reste = Besoin - Prod_Max
i = i - 3
Besoin = Cells(i, "F") + Reste
Stock_Precedent = Cells(i, "K")
End If
End Sub
Cdlt
Merci beaucoup à tous,
Arturo ton travail est remarquable.
C'est les VBA ca ?
Bonne semaine à tous
