Harlem_2021
XLDnaute Nouveau
Bonjour à tous
Je suis nouveau et j'ai cherché pas mal dans les forums. J'ai trouvé un post qui peut me convenir mais j'ai un souci sur la macro. Elle ne traite pas les lignes qui sont créées
https://www.excel-downloads.com/threads/scinder-valeur-et-ajouter-le-restant.20050335/
Mon besoin est le suivant :
Si la colonne F="A" et si la valeur de la colonne J est supérieure à K, alors soustraire la valeur de colonne C pour que la valeur J (Qui est une formule entre B x C) soit inférieure à K.
Une fois J<K, alors copier coller la ligne traitée en dessous en pensant bien à fournir le restant de la ligne C. Il se peut qu'avec le restant de la colonne C la nouvelle ligne en J soit supérieure à K, si c'est le cas faire la même chose pour que J soit inférieure à K et insérer la ligne en dessous. Et faire cela avec toutes les lignes.
J'ai essayé de reprendre le code VBA de Rouge mais il ne traite pas la ligne qu'il a créé alors qu'il se peut que la valeur en J soit toujours supérieure à K.
J'espère que cela est claire.
J'ai mis le fichier en PJ avec un onglet résultat souhaité
Merci pour votre aide
Harlem
Je suis nouveau et j'ai cherché pas mal dans les forums. J'ai trouvé un post qui peut me convenir mais j'ai un souci sur la macro. Elle ne traite pas les lignes qui sont créées
https://www.excel-downloads.com/threads/scinder-valeur-et-ajouter-le-restant.20050335/
Mon besoin est le suivant :
Si la colonne F="A" et si la valeur de la colonne J est supérieure à K, alors soustraire la valeur de colonne C pour que la valeur J (Qui est une formule entre B x C) soit inférieure à K.
Une fois J<K, alors copier coller la ligne traitée en dessous en pensant bien à fournir le restant de la ligne C. Il se peut qu'avec le restant de la colonne C la nouvelle ligne en J soit supérieure à K, si c'est le cas faire la même chose pour que J soit inférieure à K et insérer la ligne en dessous. Et faire cela avec toutes les lignes.
J'ai essayé de reprendre le code VBA de Rouge mais il ne traite pas la ligne qu'il a créé alors qu'il se peut que la valeur en J soit toujours supérieure à K.
VB:
Sub Scinder_Valeur()
Dim Derlig As Long, i As Long
Dim Val_C As Long, Val_D As Long
Application.ScreenUpdating = False
Derlig = Sheets("Commande").Range("A" & Rows.Count).End(xlUp).Row
For i = Derlig To 2 Step -1
If Cells(i, "F") = "A" And Cells(i, "J") > Cells(i, "K") Then
Val_C = Cells(i, "C")
Val_D = Cells(i, "D")
Do While Cells(i, "J") > Cells(i, "K") And Cells(i, "F") = "A"
Cells(i, "C") = Cells(i, "C") - 1
Loop
Rows(i).Copy
Rows(i + 1).Insert Shift:=xlDown
Cells(i + 1, "C") = Val_C - Cells(i, "C")
Cells(i + 1, "D") = Val_D - Cells(i, "D")
End If
Next i
End Sub
J'espère que cela est claire.
J'ai mis le fichier en PJ avec un onglet résultat souhaité
Merci pour votre aide
Harlem