[VS.NET 2003]

salut à tous !

J'essaye de lire des données d'une feuille particulière dans un fichier Excel.
Ce que je souhaite, c'est préciser un indice pour une feuille, et de pouvoir y accéder pour récupérer ses données. Donc je suis parvenu à cela:

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
31
32
33
34
35
36
 
 
Dim DS As System.Data.DataSet
Dim FeuillesExcel As DataTable
Dim Commande As System.Data.OleDb.OleDbDataAdapter
Dim MyConnection As System.Data.OleDb.OleDbConnection
Dim NomFeuille As String
Dim IndiceFeuille As Integer = 1
 
Try
   MyConnection = New System.Data.OleDb.OleDbConnection( _
    "provider=Microsoft.Jet.OLEDB.4.0; " & _
    "data source=C:\Projets\Test\TestFichierXLS\bin\produits.xls; " & _
    "Extended Properties=Excel 8.0;")
 
    FeuillesExcel = MyConnection.GetOleDbSchemaTable
(System.Data.OleDb.OleDbSchemaGuid.Tables, New Object() {Nothing,
 Nothing, Nothing, "TABLE"})
    NomFeuille = "[" & FeuillesExcel.Rows(IndiceFeuille).Item
("TABLE_NAME").ToString() & "]"
 
    Commande = New System.Data.OleDb.OleDbDataAdapter( _
      "select * from " & NomFeuille, MyConnection)
 
    DS = New System.Data.DataSet
    Commande.Fill(DS)
    Commande.FillSchema(DS, SchemaType.Mapped)
    DataGrid1.DataSource = DS
 
 Catch ex As Exception
    MsgBox(ex.Message)
 Finally
    If Not MyConnection Is Nothing Then
       MyConnection.Close()
    End If
 End Try
Mais le soucis c'est qu'arrivé à la ligne


FeuillesExcel = MyConnection.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, New Object() {Nothing, Nothing, Nothing, "TABLE"})
j'obtiens le message d'erreur suivant

Opération non valide. La connexion est fermée
Je ne vois pas ou est le malaise... quelqu'un a une idée ?

D'avance merci

Juste pour préciser, j'ai essayé avec des fichiers d'Excel 2003 et 97, avec le même résultat.

Sur mon poste je dispose de Excel 2003.