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.

233ciment.xlsx (12.05 Ko)
58ciment.xlsx (12.05 Ko)

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

38ciment.xlsx (8.62 Ko)

Bonjours,

dernier fichier vierge ?
eric

le dernier fichier est vide

Bonjour,

Franchement pas clair, ça pose encore plus de questions, quelques exemples ci-dessous:

lah

Cdlt

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

Rechercher des sujets similaires à "calcul production optimale fonction capacites"