Sub Recopie(Répertoire)
Dim Fso As Scripting.FileSystemObject
Dim RépSource As Scripting.Folder
Dim SousRép As Scripting.Folder
Dim Fichier As Scripting.File
Dim i As Long, j As Long
Set Fso = CreateObject("Scripting.FileSystemObject")
Set RépSource = Fso.GetFolder(Répertoire)
Application.ScreenUpdating = False
i = 1: j = 1
For Each Fichier In RépSource.Files
If Right$(Fichier, 8) = "SURF.xls" Then 'Recherche des fichiers *SURF.xls
Sheets("RecapG").Range("A" & 10 + i) = Fichier.Name
Sheets("RecapSG").Range("A" & 10 + j) = Fichier.Name
Workbooks.Open Filename:=Répertoire & "\" & Fichier.Name 'ouverture du fichier
For t = 1 To ActiveWorkbook.Sheets.Count ' Récupération des noms d'onglets et des valeurs utiles
With Workbooks("RecapGlobal_v2.xls")
With .Sheets("RecapG")
.Range("B" & 10 + i) = ActiveWorkbook.Sheets(t).Name
Sheets(t).Range("A9").Resize(, 21).Copy Destination:=.Range("C" & 10 + i)
i = i + 1
End With
With .Sheets("RecapSG")
.Range("B" & 10 + i) = ActiveWorkbook.Sheets(t).Name
Sheets(t).Range("B1:B7").Copy
.Range("C10").Offset(j, 0).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
j = j + 1
End With
End With
Next
ActiveWorkbook.Close False
End If
Next Fichier
'--- Appel récursif pour lister les fichier dans les sous-répertoires ---.
For Each SousRép In RépSource.subfolders
Recopie SousRép.Path
Next SousRép
End Sub