VBA
Résolu
rimoa
Messages postés
149
Date d'inscription
Statut
Membre
Dernière intervention
-
rimoa Messages postés 149 Date d'inscription Statut Membre Dernière intervention -
rimoa Messages postés 149 Date d'inscription Statut Membre Dernière intervention -
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