lister les feuilles d'un classeur fermé

Claudevba

XLDnaute Nouveau
j'essaie de lister les feuilles d'un classeur fermé. j'utilse cette fonction:

Sub ListeFeuillesClasseurFerme()
Dim XlConnect As Object, XlCatalog As Object
Dim Fichier As String, Resultat As String
Dim Feuille As Object

Fichier = "C:\dossier\Nom classeur.xls"

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 = Resultat & Feuille.Name & vbCrLf
Next

MsgBox Resultat
End Sub

J'ai ajouté les bibliothèques recquises pour ADO. La procédure fonctionne à merveille avec les xls, mais avec les xlsx, il y'a problème. comment faire?
 

mth

XLDnaute Barbatruc
Re : lister les feuilles d'un classeur fermé

re :)

Petite adaptation, à l'aide des tutos trouvés ici (de silkyroad):
Lire et crire dans les classeurs Excel ferms

et ici:
Ce site n'existe plus

et ça fonctionne chez moi:

Code:
Sub ListeFeuillesClasseurFerme()
    Dim Cn As ADODB.Connection
    Dim Fichier As String
    Dim xlSheet As Variant
 
    'Définit le classeur fermé servant de base de données
    Fichier = "C:\classeur1.xlsx"
 
 
    Set Cn = New ADODB.Connection
    Set cat = CreateObject("ADOX.Catalog")
    '--- Connexion ---
    With Cn
        .Provider = "Microsoft.Jet.OLEDB.4.0"
        .ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" _
            & Fichier & ";Extended Properties=""Excel 12.0;HDR=YES;"""
        .Open
    End With
    '-----------------
 
Set cat.ActiveConnection = Cn
For Each xlSheet In cat.tables
Resultat = Resultat & xlSheet.Name & vbCrLf
Next
MsgBox Resultat
'--- Fermeture connexion ---
    Cn.Close
    Set Cn = Nothing
    Set cat = Nothing
End Sub

Bonne nuit,

mth
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
299 845
Messages
1 979 505
Membres
206 754
dernier inscrit
Jacqueline ANDRAULT