Excel VBA copier/coller X2 boucle avec pour table récapitulative

FB -  
Gyrus Messages postés 3360 Statut Membre -
Bonjour à tous,

Je dois créer une macro pour le boulot qui simplifierai la vie de tout le monde mais je ne sais pas coder en VBA.
L'idée est qu'à partir d'un classeur source toutes les lignes avec un fonds blanc des différentes feuilles soient copier sur sur un autre classeur.
Après moulteqs recherches essais et cie je reste bloquer sur mon code :
Sub Echo()

Cells.Delete 'effacement de la feuille

Dim Wb As Workbook 'nomme les raccourci des objets
Dim Ws As Worksheet
Dim Cell As Range
LigneRecap = 2

Workbooks.Open ("chemin classeur source")
'ouvre automatiquement le tableau source!!!ATTENTION bien modifier le chemin en cas de déplacement
Application.ScreenUpdating = False 'permet de na pas avoir le clignotement pendant la mise à jour des données
For Each Ws In Workbooks("classeur source").Worksheets '1ère boucle entre les feuilles

Dim DerniereLigne As Long
DerniereLigne = Range("A65535").End(xlUp).Row

For Each Cell In Range(Ws.Cells(2, 1), Ws.Cells(DerniereLigne, 1)) '2ème boucle de cellule;sélectionne de la première à la dernière remplie
If Cell.Interior.ColorIndex = 2 Then 'Si le fond est blanc
Rows(ActiveCell.Row).Copy Workbooks("nvx test macro").Worksheets(1).Rows(LigneRecap) 'Copie la ligne complète
LigneRecap = LigneRecap + 1
End If

Next Cell 'Fin de la boucle 2

Next Ws 'Fin de la boucle 1

Application.ScreenUpdating = True 'Réactive la mise à jour de l'écran

End Sub


Mon problème est qu'enfin ça tourne sans planter mais ne me colle pas autant de lignes que ça ne devrait et toujours la même.

J'espère avoir été assez clair et bien avoir coller comme il faut. Je vous remercie d'avance pour toute votre aide

1 réponse

  1. Gyrus Messages postés 3360 Statut Membre 526
     
    Bonjour,

    Sub Echo()
    Dim Wb As Workbook 'nomme les raccourci des objets
    Dim Ws As Worksheet
    Dim Cell As Range
    Dim DerniereLigne As Long, LigneRecap As Long
    Application.ScreenUpdating = False 'permet de na pas avoir le clignotement pendant la mise à jour des données
    Cells.Delete 'effacement de la feuille
    LigneRecap = 2
    Workbooks.Open ("chemin classeur source")
    'ouvre automatiquement le tableau source!!!ATTENTION bien modifier le chemin en cas de déplacement
    For Each Ws In ActiveWorkbook.Worksheets '1ère boucle entre les feuilles
    DerniereLigne = Ws.Range("A" & Rows.Count).End(xlUp).Row
    For Each Cell In Range(Ws.Cells(2, 1), Ws.Cells(DerniereLigne, 1)) '2ème boucle de cellule;sélectionne de la première à la dernière remplie
    If Cell.Interior.ColorIndex = 2 Then 'Si le fond est blanc
    Cell.EntireRow.Copy Workbooks("nvx test macro.xlsm").Worksheets(1).Rows(LigneRecap) 'Copie la ligne complète
    LigneRecap = LigneRecap + 1
    End If
    Next Cell 'Fin de la boucle 2
    Next Ws 'Fin de la boucle 1
    Application.ScreenUpdating = True 'Réactive la mise à jour de l'écran
    End Sub

    A+
    0
    1. FB
       
      Merci pour ta réactivité Gyrus, ça marche nickel.
      Pour info je m'étais planté sur quoi?
      0
      1. Gyrus Messages postés 3360 Statut Membre 526 > FB
         
        J'ai placé l'instruction : Cell.EntireRow.Copy ...
        à la place de : Rows(ActiveCell.Row).Copy ...

        La cellule de la boucle (Cell) n'est pas la cellule active (Activecell).

        A+
        0