Excel VBA copier/coller X2 boucle avec pour table récapitulative
FB
-
Gyrus Messages postés 3334 Date d'inscription Statut Membre Dernière intervention -
Gyrus Messages postés 3334 Date d'inscription Statut Membre Dernière intervention -
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 :
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
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:
- Excel VBA copier/coller X2 boucle avec pour table récapitulative
- Table ascii - Guide
- Historique copier coller - Guide
- Table des matières word - Guide
- Liste déroulante excel - Guide
- Copier coller pdf - Guide
1 réponse
Bonjour,
A+
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+
Pour info je m'étais planté sur quoi?
à la place de : Rows(ActiveCell.Row).Copy ...
La cellule de la boucle (Cell) n'est pas la cellule active (Activecell).
A+