Option Explicit
Dim NomDeRepertoire, MonFichier As String, fso As Object, f As Object, i As Integer, DerLigne As Integer
Dim FichierAOuvrir As String, NomDeFichier As String
Dim XlConnect As Object, XlCatalog As Object
Dim Fichier As String, Resultat As String
Dim Feuille As Object
Sub test2()
Set fso = CreateObject("Scripting.FileSystemObject")
NomDeRepertoire = "Ton répertoire\"
For Each f In fso.GetFolder(NomDeRepertoire).Files
DerLigne = ThisWorkbook.Sheets("Feuil1").Range("A65536").End(xlUp).Row + 1
If Right(f.Name, 5) = ".xlsm" Then
NomDeFichier = f.Name
ListeFeuillesClasseurFerme
FichierAOuvrir = "'" & NomDeRepertoire & "[" & NomDeFichier & "]" & Resultat & "'!R60C1"
MsgBox FichierAOuvrir
ThisWorkbook.Sheets("Feuil1").Cells(DerLigne, 1).Value = ExecuteExcel4Macro(FichierAOuvrir)
End If
Next f
End Sub
Sub ListeFeuillesClasseurFerme()
Fichier = NomDeRepertoire & f.Name
Set XlConnect = CreateObject("ADODB.Connection")
Set XlCatalog = CreateObject("ADOX.Catalog")
XlConnect.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Fichier & _
";Extended Properties=Excel 8.0;"
Set XlCatalog.ActiveConnection = XlConnect
For Each Feuille In XlCatalog.Tables
Resultat = Left(Feuille.Name, Len(Feuille.Name) - 1)
Next
XlConnect.Close
End Sub