1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| Sub Mettre_à_jour()
'Variables
i = 0 'Valeur actualisé du PMP tant que la quantité n'est pas atteinte
j = 1000 'Nombre de lignes maximum prises en compte dans le calcul
k = 2 'Ligne de la fiche PMP à mettre à jour
l = 0 'Somme des quantités prises dans le calcul de mise à jour du PMP
'Mise à jour du PMP
Do While l < Cells(k, 6) 'Tant que le cumul quantité est inférieur à la quantité en stock
If Sheets("Component_cost_data").Cells(j, 1).Value = Sheets("PMP").Cells(k, 2).Value Then 'Test de vérification de la désignation. Si oui, on prend en compte sinon on passe au suivant
If Sheets("Component_cost_data").Cells(j, 10).Value > Sheets("PMP").Cells(k, 6).Value Then 'Si la quantité libérée est supérieure à la quantité en stock, alors
Sheets("PMP").Cells(k, 5) = Sheets("Component_cost_data").Cells(j, 18) 'Le PMP est égal au unit cost de cette libération
ElseIf Sheets("Component_cost_data").Cells(j, 10).Value < Sheets("PMP").Cells(k, 6).Value Then 'si la quantité libérée est inférieure à la quantité en stock, alors
i = (i * l + Sheets("Component_cost_data").Cells(j, 18).Value * Sheets("Component_cost_data").Cells(j, 10).Value) / (l + Sheets("Component_cost_data").Cells(j, 10).Value) 'Calcul du nouveau PMP intermédiaire
l = l + Sheets("Component_cost_data").Cells(j, 10).Value 'Mise à jour de la quantité ayant le PMP calculé ci-dessus
End If
End If
j = j - 1 'Décrémentation des lignes
Loop
End Sub |
Partager