Option Explicit
Const FeuilleRep = "Feuil1"   ' Nom de la feuille des répertoires à parcourir (colonne A)
Const Debut = "Source"        ' Début des noms des fichiers à concaténer
Const Extension = "xlsx"      ' Extension des fichiers à concaténer
Const FeuilSource = "Data"    ' Nom de la feuille où sont des données à concaténer
Const LigneDébut = 9          ' Ligne de début de la zone à concaténer
Const FeuilCible = "Concat"   ' Nom de la feuille destination des données (dans ce classeur)
Private ClnFichier As New Collection ' Collection des fichiers à concatéténer
Sub Concatener()
   Dim Fle As File, L As Long
   Application.ScreenUpdating = False
   CreerCollectionFichiers
   With ThisWorkbook.Sheets(FeuilCible)
      .Cells.Clear
      L = 1
      For Each Fle In ClnFichier
         ConcatUnFichier Fle, L
         Next Fle
      Application.Goto .Range("a1"), True
   End With
   MsgBox "Concaténation terminée", vbInformation
   End Sub
Sub ConcatUnFichier(ByVal Fle As File, ByRef LCbl As Long)
   Dim Wbk As Workbook, Wsh As Worksheet, RngSrc As Range, LFin As Long
   Set Wbk = Workbooks.Open(Fle.Path)
   On Error Resume Next: Set Wsh = Wbk.Worksheets(FeuilSource)
   On Error GoTo 0: If Wsh Is Nothing Then MsgBox "Le classeur :" & vbLf & Wbk.FullName & vbLf & _
      "ne possède pas de feuille """ & FeuilSource & """.", vbExclamation, "ConcatUnFichier": Exit Sub
   LFin = Wsh.Cells(Wsh.Rows.Count, "A").End(xlUp).Row
   If LFin >= LigneDébut Then
      Set RngSrc = Wsh.Range(Wsh.Rows(LigneDébut), Wsh.Rows(LFin))
      RngSrc.Copy ThisWorkbook.Worksheets(FeuilCible).Rows(LCbl)
      LCbl = LCbl + RngSrc.Rows.Count
      End If
   Wbk.Close SaveChanges:=False
   End Sub
Sub CreerCollectionFichiers()
   Dim Cel As Range, Chemin As String, FSO As New FileSystemObject, Fdr As Folder
   With ThisWorkbook.Worksheets(FeuilleRep)
      For Each Cel In .Range("A1:A" & .Cells(Rows.Count, "A").End(xlUp).Row)
         Chemin = Cel.Value
         On Error Resume Next
         Set Fdr = FSO.GetFolder(Chemin)
         If Err Then
            MsgBox "Erreur " & Err & " en tentant d'acéder à :" & vbLf & Chemin _
               & vbLf & Err.Description, vbCritical, "CréerCollectionFichiers"
            End
         Else: ListeFichiers Fdr, Debut & "*." & Extension: End If
      Next Cel
   End With
End Sub
Sub ListeFichiers(ByVal Fdr As Folder, ByVal Modèle As String) '(Récursif)
   Dim SubFdr As Folder, Fle As File
      For Each Fle In Fdr.Files
         If LCase(Fle.Name) Like LCase(Modèle) Then ClnFichier.Add Fle
         Next Fle
      For Each SubFdr In Fdr.SubFolders
         ListeFichiers SubFdr, Modèle
         Next SubFdr
   End Sub