Copier plusieurs fichier dans un seul

Bonjour ,

Voici ma macro pour copier plusieurs fichier dans un mais sans succès. Merci de m'aider.

Sub recup()

    Dim Classeur As Worksheet
    Dim Fe As Worksheet
    Dim Plage As Range
    Dim Cel As Range
    Dim Chemin As String
    Dim Fichier As String

    Chemin = "C:\Users\TREH004\Documents\Indexation PME\"  'saisir le chemin complet du dossier où se trouvent les fichiers
   Fichier = Dir(Chemin & "*SEMAINE*.xlsm") ' Premier fichier

    'feuille où seront collées les valeurs, adapter le nom...
   Set Fe = ThisWorkbook.Worksheets("Suivi des activités")

    Application.ScreenUpdating = False

    Do While Fichier <> ""

        Set Classeur = Workbooks.Open(Chemin & Fichier).Worksheets(2)

        'ici, la plage est commune à tous les classeurs
      [color=#FFFF40] Set Plage = Classeur.Range("C8:L8", Range("C8").End(xlDown)) --> ERREUR
[/color] 
        'recherche la 1ère cellule vide en colonne A
       Set Cel = Fe.Cells(Rows.Count, 3).End(xlUp).Offset(1)

        'si pour la 1ère fois la cellule se trouve au dessus de la cellule A6, défini A6 comme la cellule de départ
       If Cel.Row < 7 Then Set Cel = Fe.Cells(7, 1)

        'récup des valeurs
       Fe.Range(Cel, Fe.Cells(Cel.Row + Plage.Rows.Count - 1, Plage.Columns.Count)).Value = Plage.Value

        Workbooks.Open(Chemin & Fichier).Close savechanges:=False

        Fichier = Dir ' Fichier suivant

    Loop

End Sub

Bonjour,

Bon j'ai pas essayé mais déjà ça, je le sens pas :

        Set Classeur = Workbooks.Open(Chemin & Fichier).Worksheets(2)

A mon avis tu peux essayer de faire

        Set Classeur = Workbooks.Open(Chemin & Fichier)
        With Classeur.Worksheets(2)
        Set Plage = .Range("C8:L8", Range '...

A une vache près, ça doit résoudre ton problème...

Le problème c'est que tous tes Set ne résolvent rien : Quand tu Set une erreur ben ton Set Classeur il gobe ton erreur sans problème...

Par contre pour trouver le .End(xlDown)) de ton erreur : là VBA y couine...

Sans préjudice de tes Set ultérieurs... que je n'ai pas cherché à évaluer !

Personnellement je préfère mémoriser une variable avec le N° de dernière ligne : ça donne du code bien plus lisible que tes instances.

Mébon je suppose que c'est une question d'habitude... Si tu l'habitude programmer sous d'autres langages ça peut sans doute se concevoir mais dans ce cas : mef... "Set truc" peut bien renvoyer "Nothing" si tu t'en sers à la légère...

A+

Rechercher des sujets similaires à "copier fichier seul"