VBA
Résolu
rimoa
Messages postés
150
Statut
Membre
-
rimoa Messages postés 150 Statut Membre -
rimoa Messages postés 150 Statut Membre -
Bonjour, merci de votre aide. Je vous en serai reconnaissante si vous pouvez trouver mon erreur sans que je vous envoie le fichier par confidentialité. je copie ici juste la partie des boucles.
j'ai 4 feuilles, j'essaye de faire une macro pour consolider les trois tables dans la feuille 'Comb' mais la boucle copie une seule table et s'arrête sans message d'erreur.
j'ai 4 feuilles, j'essaye de faire une macro pour consolider les trois tables dans la feuille 'Comb' mais la boucle copie une seule table et s'arrête sans message d'erreur.
For j = 1 To 3 'parcours feuilles
Sheets(j).Select
dereniereligne = Range("A1000000").End(xlUp).Row
For i = 2 To DerniereLigne 'parcours lignes chaque table
Sheets(j).Select
Rows(i).Select
Selection.Copy
Sheets("Comb").Select
LastRowConsolidation = Range("A1000000").End(xlUp).Row + 1
Cells(LastRowConsolidation, 1).Select
ActiveSheet.Paste
Application.CutCopyMode = False
Next i
Next j
Application.ScreenUpdating = True
MsgBox "Consolidation terminée", vbOKOnly + vbInformation, "information"
End Sub
2 réponses
Bonjour,
dereniereligne= Range("A1000000").End(xlUp).Row
et
For i = 2 To DerniereLigne 'parcours lignes chaque table
La y a un probleme de nom de variable et c'est pas le d majuscule
Vous dites que ca copie une seule table, ben pas possible copie rien
Maintenant, il faut eviter les select et autant que possible les boucles sur ligne quand il y a moyen de faire autrement
Une facon de faire:
dereniereligne= Range("A1000000").End(xlUp).Row
et
For i = 2 To DerniereLigne 'parcours lignes chaque table
La y a un probleme de nom de variable et c'est pas le d majuscule
Vous dites que ca copie une seule table, ben pas possible copie rien
Maintenant, il faut eviter les select et autant que possible les boucles sur ligne quand il y a moyen de faire autrement
Une facon de faire:
Sub test()
Application.ScreenUpdating = False
For j = 1 To 3 'parcours feuilles
dereniereLigne = Sheets(j).Range("A" & Rows.Count).End(xlUp).Row
With Sheets("Comb")
LastRowConsolidation = .Range("A" & .Rows.Count).End(xlUp).Row + 1
Sheets(j).Rows("2:" & dereniereLigne).Copy .Cells(LastRowConsolidation, 1)
End With
Next j
Application.ScreenUpdating = True
MsgBox "Consolidation terminée", vbOKOnly + vbInformation, "information"
End Sub
merci aussi pour l'idée de Option Explicit