Bonjour
je utilise ce code pour lire d´une fichiee Excel fermee:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Sub Lire_Classeur_Ferme()
'Réf. 111018.xlsm
 
'Références à sélectionner :
'référence Microsoft ActiveX Data Objects x.x Library
 
Dim cn As ADODB.Connection
Dim Fichier As String
Dim NomFeuille As String, texte_SQL As String
'Définit le classeur fermé servant de base de données
Fichier = "C:\Users\Daniel\Documents\Donnees\Daniel\Excel\ADO\ClasseurFerme.xls" '*** à modifier
Set cn = New ADODB.Connection
'--- Connexion ---
With cn
    .Provider = "Microsoft.Jet.OLEDB.4.0"
    .ConnectionString = "Data Source=" & Fichier & _
        ";Extended Properties=Excel 8.0;"
    .Open
'texte_SQL = "SELECT * FROM [" & NomFeuille & " ]"
NomFeuille = "MaNouvelleFeuille" '*** à modifier
texte_SQL = "SELECT * FROM [" & NomFeuille & "$]"
Set rst = New ADODB.Recordset
Set rst = .Execute(texte_SQL)
'Ecrit le résultat de la requête dans la cellule A2
Sheets("Feuil3").Range("A2").CopyFromRecordset rst '*** à modifier
End With
'--- Fermeture connexion ---
cn.Close
Set cn = Nothing
End Sub
quand le fichier excel est ouvert le programme fonctionne, mais quand le fichiee Excel est fermee il y a une message d´erreur "le tableau externe n´a pas le forma attendu"

j´ai Excel 2007
merci bien