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