Sub Recopie(Répertoire)
Dim c As Range, d As Range, nOnglet As String
Dim Fso As Scripting.FileSystemObject
Dim RépSource As Scripting.Folder
Dim SousRép As Scripting.Folder
Dim Fichier As Scripting.File
Set Fso = CreateObject("Scripting.FileSystemObject")
Set RépSource = Fso.GetFolder(Répertoire)
Application.ScreenUpdating = False
Sheets("Menu").Range("B3") = Sheets("Menu").Range("B3") + 1
For Each Fichier In RépSource.Files
If Right$(Fichier, 8) = "SURF.xls" Then 'Recherche des fichiers *SURF.xls
With frmZavancement
FichEnCours = FichEnCours + 1
.Label1.Caption = "J'en suis à " & FichEnCours & " sur " & TotalFichiers & "."
.Label2.Caption = Format(CDate(Now - Tdepart), "N:ss")
.FrameProgress.Caption = Format(FichEnCours / TotalFichiers, "0%")
.LabelProgress.Width = FichEnCours / TotalFichiers * (.FrameProgress.Width - 10)
.Show 0 'Affichage Progressbar en non modal
End With
nOnglet = RechFermé(RépSource & "\" & Fichier.Name) 'ADO Pour trouver le nom du 1er onglet
Set c = Sheets("RecapG").Range("D" & Sheets("RecapG").Range("d65536").End(xlUp).Row + 1)
Set d = Sheets("RecapSG").Range("D" & Sheets("RecapSG").Range("d65536").End(xlUp).Row + 1)
d(1, -2) = Répertoire
d(1, -1) = Fichier.Name
d(1, 0) = nOnglet
For t = 1 To 7
d(1, t).Formula = "='" & Répertoire & "\[" & Fichier.Name & "]" & nOnglet & "'!B" & t
d(1, t) = d(1, t)
Next t
Sheets("Menu").Range("B4") = Sheets("Menu").Range("B4") + 1
t = 8
1 t = t + 1
c.Offset(t - 9, 0).Formula = "='" & Répertoire & "\[" & Fichier.Name & "]" & nOnglet & "'!A" & t
If c.Offset(t - 9, 0).Value = 0 Then c.Offset(t - 9, 0).Clear Else GoTo 1
t = t - 1
Range(c, c(t - 8, 1)).AutoFill Range(c, c(t - 8, 23))
Range(c, c(t - 8, 23)).Value = Range(c, c.Offset(t - 8, 22)).Value
c(1, -2).Resize(t - 8) = Répertoire
c(1, -1).Resize(t - 8) = Fichier.Name
c(1, 0).Resize(t - 8) = nOnglet
End If
Next Fichier
'--- Appel récursif pour lister les fichiers dans les sous-répertoires ---.
For Each SousRép In RépSource.subfolders
Recopie SousRép.Path
Next SousRép
End Sub