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

Fermé
FB - 17 avril 2015 à 14:36
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 - 17 avril 2015 à 17:38
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
A voir également:

1 réponse

Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 524
17 avril 2015 à 17:00
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
Merci pour ta réactivité Gyrus, ça marche nickel.
Pour info je m'étais planté sur quoi?
0
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 524 > FB
17 avril 2015 à 17:38
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