Re : Création archivage facture
Bonjour à tous,
J'ai une demande du même type : Je souhaiterais remplir l'onglet "historique facture" à chaque fois qu'une facture est enregistrée.
Les commandes peuvent contenir 1 ou 2 produits différents, et les factures comprennent donc 1 ou 2 lignes.
Je n'arrive pas à faire varier le code en fonction du nombre de lignes que contient la facture, voici ce que j'ai essayé :
Private Sub Save_facture_Click()
Sheets("facture").Range("L12") = Sheets("facture").Range("L12") + 1
Sheets("historique_factures").Range("A1048576").End(xlUp).Offset(0, 0) = Sheets("facture").Range("L12")
Sheets("historique_factures").Range("A1048576").End(xlUp).Offset(0, 1) = Sheets("facture").Range("L11")
Sheets("historique_factures").Range("A1048576").End(xlUp).Offset(0, 2) = Sheets("facture").Range("L13")
Sheets("historique_factures").Range("A1048576").End(xlUp).Offset(0, 21) = Sheets("facture").Range("L14")
Sheets("historique_factures").Range("A1048576").End(xlUp).Offset(0, 5) = Sheets("facture").Range("D25")
'1er produit
Sheets("historique_factures").Range("A1048576").End(xlUp).Offset(0, 11) = Sheets("facture").Range("D36")
Sheets("historique_factures").Range("A1048576").End(xlUp).Offset(0, 12) = Sheets("facture").Range("E36")
Sheets("historique_factures").Range("A1048576").End(xlUp).Offset(0, 13) = Sheets("facture").Range("F36")
Sheets("historique_factures").Range("A1048576").End(xlUp).Offset(0, 14) = Sheets("facture").Range("G36")
Sheets("historique_factures").Range("A1048576").End(xlUp).Offset(0, 15) = Sheets("facture").Range("H36")
Sheets("historique_factures").Range("A1048576").End(xlUp).Offset(0, 16) = Sheets("facture").Range("I36")
Sheets("historique_factures").Range("A1048576").End(xlUp).Offset(0, 17) = Sheets("facture").Range("J36")
Sheets("historique_factures").Range("A1048576").End(xlUp).Offset(0, 18) = Sheets("facture").Range("K36")
Sheets("historique_factures").Range("A1048576").End(xlUp).Offset(0, 19) = Sheets("facture").Range("L36")
'2ème produit
Sheets("historique_factures").Range("A1048576").End(xlUp).Offset(1, 11) = Sheets("facture").Range("D37")
Sheets("historique_factures").Range("A1048576").End(xlUp).Offset(1, 12) = Sheets("facture").Range("E37")
Sheets("historique_factures").Range("A1048576").End(xlUp).Offset(1, 13) = Sheets("facture").Range("F37")
Sheets("historique_factures").Range("A1048576").End(xlUp).Offset(1, 14) = Sheets("facture").Range("G37")
Sheets("historique_factures").Range("A1048576").End(xlUp).Offset(1, 15) = Sheets("facture").Range("H37")
Sheets("historique_factures").Range("A1048576").End(xlUp).Offset(1, 16) = Sheets("facture").Range("I37")
Sheets("historique_factures").Range("A1048576").End(xlUp).Offset(1, 17) = Sheets("facture").Range("J37")
Sheets("historique_factures").Range("A1048576").End(xlUp).Offset(1, 18) = Sheets("facture").Range("K37")
Sheets("historique_factures").Range("A1048576").End(xlUp).Offset(1, 19) = Sheets("facture").Range("L37")
End Sub
Sub Save_facture()
Application.ScreenUpdating = False
With Sheets("historique_facture")
i = 2
Do While Cells(i, 12) <> ""
.Range(Cells((i - 1), 5), Cells((i - 1), 11)).Copy Destination:=Sheets("historique_facture").Cells((i + 1), 5)
i = i + 1
Loop
End With
Application.ScreenUpdating = True
End Sub
Je vous joins une photo de l'onglet historique facture car je n'arrive pas à réduire le poids du fichier pour vous l'envoyer
L'idée serait donc de créer une boucle qui, à chaque fois que la cellule "produit" de la 2ème ligne est renseignée, copie les éléments de la ligne du dessus (colonnes 1 à 3 et 4 à 11)
Merci pour votre aide!