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   -
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.


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

f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
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:
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
1
NHenry Messages postés 15219 Date d'inscription   Statut Modérateur Dernière intervention   365
 
En effet, faute de frappe, pense à mettre "Option Explicit" en haut de ton module de code, ça limitera ce genre de soucis.
1
rimoa
 
Merci à vous deux ça fonctionne avec un code beaucoup bien réduit :-)
merci aussi pour l'idée de Option Explicit
0
NHenry Messages postés 15219 Date d'inscription   Statut Modérateur Dernière intervention   365 > rimoa
 
Si le problème est résolu, pense à le "marquer comme résolu" (gros bouton vert)
1
rimoa Messages postés 149 Date d'inscription   Statut Membre Dernière intervention   1
 
sorry j avais oubliè de cliquer rèsolu. c esr fait.
juste une petite note que j avais manquee dans mes repinses. Oui mon code erronè copiait ètrangement une seuille feuille dans le combinè. oui ça ne devait pas fonctionner du tout mais bon je voulais juste ajouter cette precision.
0