Bonjour à toutes et à tous,

Est-ce que quelqu'un peut m'aider? J'ai créé le code suivant. Or, il ne fonctionne pas du tout comme je le souhaite. J'ai fais la fonction debug et je ne comprends pas pourquoi cela marche pas.

Dans le debug, il ne rentre jamais dans ma fonction du if. Or, il n'y a pas d'erreur de typo. Qu'est ce qui ne va pas dans mon code?

Nom : Capture.PNG
Affichages : 370
Taille : 10,7 Ko
Nom : Capture2.PNG
Affichages : 376
Taille : 23,3 Ko

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Je vous remercie beaucoup pour votre aide.

Ludovic