Archivage VBA

Bonjour à tous,

J'espère que vous allez bien malgré la situation !

J'essaie de créer une macro VBA pour faire un archivage de facture.

Malheureusement je bloque.

Je ne comprends pas le débogage demandé malgré toutes mes recherches sur les forums et les tutos.

Le but étant de créer une macro pour archiver dans l'onglet "HISTORIQUE_FACTURES" l'historiques des données des factures et de cleaner la matrice pour en créer une nouvelle.

Je vous serais infiniment reconnaissant de m'aider sur ce sujet !

En vous remerciant d'avance !

Gwendal

Bonjour,

Un essai ... voir la ligne marquée ' modif

Sub ARCHIVAGE()
    For Each Item In Sheets("FACTURE").Range("B18:B34")
        If Item.Value = "" Then
            'ne rien faire
        Else
            'archiver le contenu de la ligne
            ligne = Sheets("HISTORIQUE_ENVOIS").Cells(Rows.Count, "A").End(xlUp).Row + 1 ' modif
            ligne_origine = Item.Row
            Sheets("HISTORIQUE_ENVOIS").Range("A" & ligne).Value = Sheets("FACTURE").Range("H4").Value
            Sheets("HISTORIQUE_ENVOIS").Range("B" & ligne).Value = Sheets("FACTURE").Range("H5").Value
            Sheets("HISTORIQUE_ENVOIS").Range("C" & ligne).Value = Sheets("FACTURE").Range("C3").Value
            Sheets("HISTORIQUE_ENVOIS").Range("D" & ligne).Value = Sheets("FACTURE").Range("C9").Value
            Sheets("HISTORIQUE_ENVOIS").Range("N" & ligne).Value = Sheets("FACTURE").Range("M35").Value

            Sheets("HISTORIQUE_ENVOIS").Range("E" & ligne).Value = Sheets("FACTURE").Range("B" & ligne_origine)
            Sheets("HISTORIQUE_ENVOIS").Range("F" & ligne).Value = Sheets("FACTURE").Range("C" & ligne_origine)
            Sheets("HISTORIQUE_ENVOIS").Range("G" & ligne).Value = Sheets("FACTURE").Range("J" & ligne_origine)
            Sheets("HISTORIQUE_ENVOIS").Range("H" & ligne).Value = Sheets("FACTURE").Range("L" & ligne_origine)
            End If
        Next Item

    'on réinitialise la facture
    Sheets("FACTURE").Range("A18:A34").ClearContents
    Sheets("FACTURE").Range("C3:G3").ClearContents
    Sheets("FACTURE").Range("C9:G9").ClearContents
    Sheets("FACTURE").Range("H4").ClearContents
    Sheets("FACTURE").Range("B18:B34").ClearContents
    Sheets("FACTURE").Range("K15").ClearContents
    Sheets("FACTURE").Range("C36:O36").ClearContents
    Sheets("FACTURE").Range("J18:J34").ClearContents
End Sub

ric

Bonjour Gweendal et le forum

Ma petite contribution en PJ.

Cdt

Henri

27gweendal-test1.xlsm (40.74 Ko)

Bonsoir Henri,

Merci beaucoup de ta solution !!

Malheureusement quand j'ai voulu l'adapter à ma matrice, la macro fonctionne mais ne sauvegarde qu'une ligne.

Quand j'archive une première fois tout est archiver (ex : 5ref)

Quand j'archive une seconde, il écrase les dernières ref (il garde la première ligne et écrase les 4 autres)

Que faire ?

En te remerciant !

Gwendal

Bonjour Gwendal,

Effectivement, comme tu as modifié la structure de ta feuille "Historique_Envois", la dernière ligne vide n'est plus repérée en colonne E mais en colonne K.

D'autre part, j'ai mis les cellules B18 à B34 de la feuille "Facture" avec une liste déroulante (plus pratique pour la saisie).

Voici le résultat en PJ.

Cdt

Henri

57gweendal-test2.xlsm (39.62 Ko)

Bonjour Henri,

Merci beaucoup !!!

Rechercher des sujets similaires à "archivage vba"