Problème avec ma macro

Bonjour à vous,

Ca fait déjà plusieurs jours que je travaille sur cette macro or cela n'abouti pas, j'ai besoin de votre aide.

Ma macro consiste à chercher dans la colonne C si la facture est payée, si celle-ci est payée alors je la copie, je vais dans la feuille appelée Tableau N-1 et je colle les valeurs. Après cela je retourne dans la première feuille (Tableau N) et je supprime les lignes qui contiennent facture payée. Bien sûr à force mon Tableau N-1 va se remplir il faut donc que les données se collent à la suite.

Cela me permet de garder une trace des factures qui ont été payées l'année précédente et de bien visualiser ceux en attente de paiement. J'ai déjà établi le début de la macro, mais je suis bloqué.

Je vous mets ci-joint le tableau d'exemple et ci-dessous mon début de code.

Sub Macro1()
'
' Macro1 Macro
 Dim ShSrc As Worksheet ' Feuille Source
    Dim ShCible As Worksheet ' Feuille Cible

    Set ShSrc = ThisWorkbook.Sheets("Tableau N")
    Set ShCible = ThisWorkbook.Sheets("Tableau N-1")

    For Each C In ShSrc.Range("C8:C47")
        If C.Value = "Facture payée" Then
            ligne = C.Row
            ShSrc.Select
            ShSrc.Range(Cells(ligne, 1), Cells(ligne, 4)).Select ' plage de la colonna A à N
            Selection.Copy
            Sheets("Tableau N-1").Activate

            End If
            Next
End Sub

Je remercie toutes les personnes qui prendront le temps de me répondre, en vous souhaitant une bonne journée.

Cordialement

Bonjour,

Teste avec cette macro

Bonjour,

Un essai en utilisant les filtres de données

Sub Macro1()

Dim X As Long

Sheets("Tableau N").Select
Sheets("Tableau N").Range("$A$7:$N$17").AutoFilter Field:=3, Criteria1:="<>"
Range("A8:N8").Select
Range(Selection, Selection.End(xlDown)).Copy

X = Sheets("Tableau N-1").Range("A" & Rows.Count).End(xlUp).Row + 1
Sheets("Tableau N-1").Range("A" & X).PasteSpecial Paste:=xlPasteValues

Sheets("Tableau N").Select
Sheets("Tableau N").Range("A8:N8").Select
Range(Selection, Selection.End(xlDown)).Delete
ActiveSheet.Range("$A$7:$N$12").AutoFilter Field:=3

End Sub

Bonjour, je tiens à vous remercier tous les deux de votre aide, ma macro fonctionne enfin !

Merci beaucoup, bonne fin de journée à vous.

Rechercher des sujets similaires à "probleme macro"