Function GetListeFeuilles(Fichier As String) As Variant
Dim cnx 'Connexion ADO
Dim cat 'Catalogue ADO
Dim xlTables As Variant 'Une table dans le catalogue
Dim result() As Variant 'Tableau de sortie de la fonction
Dim i As Integer 'Compteur des tables
' Création des objets ADO
Set cnx = CreateObject("ADODB.Connection")
Set cat = CreateObject("ADOX.Catalog")
'Vérification de l'existence du fichier à consulter
If Dir(Fichier) = "" Then
MsgBox "Le fichier '" & Fichier & "' est introuvable!", vbExclamation, "GetListeFeuilles"
Exit Function
End If
'Ouverture connexion
cnx.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Fichier & ";Extended Properties=Excel 8.0;"
'Récupération du catalogue
Set cat.ActiveConnection = cnx
'Boucle sur la liste des tables
For Each xlTables In cat.Tables
'Les noms de table finissant pas "$" ou "$'" sont des noms de feuilles
If InStr(1, Right(xlTables.Name, 2), "$") > 0 Then
'Ajouter au tableau
ReDim Preserve result(0 To i)
result(i) = Replace(Replace(xlTables.Name, "$", ""), "'", "")
i = i + 1
End If
Next
cnx.Close
Set cnx = Nothing: Set cat = Nothing
GetListeFeuilles = result
End Function