Bon.. bin tant pis, j'utilise l'objet Excel.Application Comme ça, j'ai bien A1. Par contre, c'est 10 fois plus lent :/
"Stéphane L." a écrit dans le message de news:%23qLQYW$ > Bonjour, > > En utilisant la méthode qui permet de lire 1 fichier Excel sans
l'ouvrir,
je > n'arrive pas à trouver la cellule A1. > Dim ds As DataSet > > Dim ma_commande As OleDb.OleDbDataAdapter > > Dim ma_connexion As OleDb.OleDbConnection > > ma_connexion = New OleDb.OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0" > & _ > > "; data source=" & Me.OpenFileDialog_Importation_MP.FileName & _ > > "; Extended Properties=Excel 8.0;") > > ma_commande = New OleDb.OleDbDataAdapter("Select * from [Feuil1$]", > ma_connexion) > > ds = New DataSet > > ma_commande.Fill(ds) > > feuille_xl = ds.Tables(0) > > 'A1 > > If IsDBNull(feuille_xl.Rows(0).ItemArray(0)) Then > > a1 = "VIDE" > > Else > > a1 = feuille_xl.Rows(0).ItemArray(0) > > End If > > 'A5 > > If IsDBNull(feuille_xl.Rows(4).ItemArray(0)) Then > > a5 = "" > > Else > > a5 = feuille_xl.Rows(4).ItemArray(0) > > End If > > > Dans mon fichier Excel, j'ai bien quelque chose de marqué en A1 et A5. > Mais le programme ne me lit 1 valeur que dans A5 (me retourne "VIDE"
"Stéphane L." <no@spam.fr> a écrit dans le message de
news:%233vPLuHdEHA.2352@TK2MSFTNGP09.phx.gbl...
Bon.. bin tant pis, j'utilise l'objet Excel.Application
Comme ça, j'ai bien A1.
Par contre, c'est 10 fois plus lent :/
"Stéphane L." <no@spam.fr> a écrit dans le message de
news:%23qLQYW$cEHA.3664@TK2MSFTNGP12.phx.gbl...
> Bonjour,
>
> En utilisant la méthode qui permet de lire 1 fichier Excel sans
l'ouvrir,
je
> n'arrive pas à trouver la cellule A1.
> Dim ds As DataSet
>
> Dim ma_commande As OleDb.OleDbDataAdapter
>
> Dim ma_connexion As OleDb.OleDbConnection
>
> ma_connexion = New
OleDb.OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0"
> & _
>
> "; data source=" & Me.OpenFileDialog_Importation_MP.FileName & _
>
> "; Extended Properties=Excel 8.0;")
>
> ma_commande = New OleDb.OleDbDataAdapter("Select * from [Feuil1$]",
> ma_connexion)
>
> ds = New DataSet
>
> ma_commande.Fill(ds)
>
> feuille_xl = ds.Tables(0)
>
> 'A1
>
> If IsDBNull(feuille_xl.Rows(0).ItemArray(0)) Then
>
> a1 = "VIDE"
>
> Else
>
> a1 = feuille_xl.Rows(0).ItemArray(0)
>
> End If
>
> 'A5
>
> If IsDBNull(feuille_xl.Rows(4).ItemArray(0)) Then
>
> a5 = ""
>
> Else
>
> a5 = feuille_xl.Rows(4).ItemArray(0)
>
> End If
>
>
> Dans mon fichier Excel, j'ai bien quelque chose de marqué en A1 et A5.
> Mais le programme ne me lit 1 valeur que dans A5 (me retourne "VIDE"
Bon.. bin tant pis, j'utilise l'objet Excel.Application Comme ça, j'ai bien A1. Par contre, c'est 10 fois plus lent :/
"Stéphane L." a écrit dans le message de news:%23qLQYW$ > Bonjour, > > En utilisant la méthode qui permet de lire 1 fichier Excel sans
l'ouvrir,
je > n'arrive pas à trouver la cellule A1. > Dim ds As DataSet > > Dim ma_commande As OleDb.OleDbDataAdapter > > Dim ma_connexion As OleDb.OleDbConnection > > ma_connexion = New OleDb.OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0" > & _ > > "; data source=" & Me.OpenFileDialog_Importation_MP.FileName & _ > > "; Extended Properties=Excel 8.0;") > > ma_commande = New OleDb.OleDbDataAdapter("Select * from [Feuil1$]", > ma_connexion) > > ds = New DataSet > > ma_commande.Fill(ds) > > feuille_xl = ds.Tables(0) > > 'A1 > > If IsDBNull(feuille_xl.Rows(0).ItemArray(0)) Then > > a1 = "VIDE" > > Else > > a1 = feuille_xl.Rows(0).ItemArray(0) > > End If > > 'A5 > > If IsDBNull(feuille_xl.Rows(4).ItemArray(0)) Then > > a5 = "" > > Else > > a5 = feuille_xl.Rows(4).ItemArray(0) > > End If > > > Dans mon fichier Excel, j'ai bien quelque chose de marqué en A1 et A5. > Mais le programme ne me lit 1 valeur que dans A5 (me retourne "VIDE"
"Stéphane L." a écrit dans le message de news:% > Bon.. bin tant pis, j'utilise l'objet Excel.Application > Comme ça, j'ai bien A1. > Par contre, c'est 10 fois plus lent :/ > > "Stéphane L." a écrit dans le message de > news:%23qLQYW$ > > Bonjour, > > > > En utilisant la méthode qui permet de lire 1 fichier Excel sans l'ouvrir, > je > > n'arrive pas à trouver la cellule A1. > > Dim ds As DataSet > > > > Dim ma_commande As OleDb.OleDbDataAdapter > > > > Dim ma_connexion As OleDb.OleDbConnection > > > > ma_connexion = New > OleDb.OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0" > > & _ > > > > "; data source=" & Me.OpenFileDialog_Importation_MP.FileName & _ > > > > "; Extended Properties=Excel 8.0;") > > > > ma_commande = New OleDb.OleDbDataAdapter("Select * from [Feuil1$]", > > ma_connexion) > > > > ds = New DataSet > > > > ma_commande.Fill(ds) > > > > feuille_xl = ds.Tables(0) > > > > 'A1 > > > > If IsDBNull(feuille_xl.Rows(0).ItemArray(0)) Then > > > > a1 = "VIDE" > > > > Else > > > > a1 = feuille_xl.Rows(0).ItemArray(0) > > > > End If > > > > 'A5 > > > > If IsDBNull(feuille_xl.Rows(4).ItemArray(0)) Then > > > > a5 = "" > > > > Else > > > > a5 = feuille_xl.Rows(4).ItemArray(0) > > > > End If > > > > > > Dans mon fichier Excel, j'ai bien quelque chose de marqué en A1 et A5. > > Mais le programme ne me lit 1 valeur que dans A5 (me retourne "VIDE" pour > > A1). > > > > > > -- > > Cordialement, > > > > Stéphane L > > > > > >
Essayez d'ajouter GC.Collect() qui force le GC (Garbage Collection) sur
tous les objets .
"Stéphane L." <no@spam.fr> a écrit dans le message de
news:ugCLRaUdEHA.3148@TK2MSFTNGP10.phx.gbl...
"Stéphane L." a écrit dans le message de news:% > Bon.. bin tant pis, j'utilise l'objet Excel.Application > Comme ça, j'ai bien A1. > Par contre, c'est 10 fois plus lent :/ > > "Stéphane L." a écrit dans le message de > news:%23qLQYW$ > > Bonjour, > > > > En utilisant la méthode qui permet de lire 1 fichier Excel sans l'ouvrir, > je > > n'arrive pas à trouver la cellule A1. > > Dim ds As DataSet > > > > Dim ma_commande As OleDb.OleDbDataAdapter > > > > Dim ma_connexion As OleDb.OleDbConnection > > > > ma_connexion = New > OleDb.OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0" > > & _ > > > > "; data source=" & Me.OpenFileDialog_Importation_MP.FileName & _ > > > > "; Extended Properties=Excel 8.0;") > > > > ma_commande = New OleDb.OleDbDataAdapter("Select * from [Feuil1$]", > > ma_connexion) > > > > ds = New DataSet > > > > ma_commande.Fill(ds) > > > > feuille_xl = ds.Tables(0) > > > > 'A1 > > > > If IsDBNull(feuille_xl.Rows(0).ItemArray(0)) Then > > > > a1 = "VIDE" > > > > Else > > > > a1 = feuille_xl.Rows(0).ItemArray(0) > > > > End If > > > > 'A5 > > > > If IsDBNull(feuille_xl.Rows(4).ItemArray(0)) Then > > > > a5 = "" > > > > Else > > > > a5 = feuille_xl.Rows(4).ItemArray(0) > > > > End If > > > > > > Dans mon fichier Excel, j'ai bien quelque chose de marqué en A1 et A5. > > Mais le programme ne me lit 1 valeur que dans A5 (me retourne "VIDE" pour > > A1). > > > > > > -- > > Cordialement, > > > > Stéphane L > > > > > >
Stéphane L.
Je ne connaissais pas ça... je vais y regarder de plus pret Merci Aba pour la proposition :)
Stéphane
"Aba" a écrit dans le message de news:erw2%
Essayez d'ajouter GC.Collect() qui force le GC (Garbage Collection) sur tous les objets .
"Stéphane L." a écrit dans le message de news: > Bonjour, > > Bien sur, toujours 1 pb... > > xlApp = CreateObject("Excel.Application") > > xlBook = xlApp.Workbooks.Open(Me.OpenFileDialog_Importation_MP.FileName) > > xlSheet = xlBook.Worksheets("Feuil1") > > ... > > xlBook.Close() > > xlApp.Quit() > > xlSheet = Nothing > > xlBook = Nothing > > xlApp = Nothing > > > Mais le processus Excel.exe est toujours actif... > > J'ai oublié de faire quekchose? > Merci d'avance > > Stéphane > > "Stéphane L." a écrit dans le message de > news:% > > Bon.. bin tant pis, j'utilise l'objet Excel.Application > > Comme ça, j'ai bien A1. > > Par contre, c'est 10 fois plus lent :/ > > > > "Stéphane L." a écrit dans le message de > > news:%23qLQYW$ > > > Bonjour, > > > > > > En utilisant la méthode qui permet de lire 1 fichier Excel sans > l'ouvrir, > > je > > > n'arrive pas à trouver la cellule A1. > > > Dim ds As DataSet > > > > > > Dim ma_commande As OleDb.OleDbDataAdapter > > > > > > Dim ma_connexion As OleDb.OleDbConnection > > > > > > ma_connexion = New > > OleDb.OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0" > > > & _ > > > > > > "; data source=" & Me.OpenFileDialog_Importation_MP.FileName & _ > > > > > > "; Extended Properties=Excel 8.0;") > > > > > > ma_commande = New OleDb.OleDbDataAdapter("Select * from [Feuil1$]", > > > ma_connexion) > > > > > > ds = New DataSet > > > > > > ma_commande.Fill(ds) > > > > > > feuille_xl = ds.Tables(0) > > > > > > 'A1 > > > > > > If IsDBNull(feuille_xl.Rows(0).ItemArray(0)) Then > > > > > > a1 = "VIDE" > > > > > > Else > > > > > > a1 = feuille_xl.Rows(0).ItemArray(0) > > > > > > End If > > > > > > 'A5 > > > > > > If IsDBNull(feuille_xl.Rows(4).ItemArray(0)) Then > > > > > > a5 = "" > > > > > > Else > > > > > > a5 = feuille_xl.Rows(4).ItemArray(0) > > > > > > End If > > > > > > > > > Dans mon fichier Excel, j'ai bien quelque chose de marqué en A1 et
A5.
> > > Mais le programme ne me lit 1 valeur que dans A5 (me retourne "VIDE" > pour > > > A1). > > > > > > > > > -- > > > Cordialement, > > > > > > Stéphane L > > > > > > > > > > > >
Je ne connaissais pas ça... je vais y regarder de plus pret
Merci Aba pour la proposition :)
Stéphane
"Aba" <a@b.com> a écrit dans le message de
news:erw2%23yXdEHA.3864@TK2MSFTNGP10.phx.gbl...
Essayez d'ajouter GC.Collect() qui force le GC (Garbage Collection) sur
tous les objets .
"Stéphane L." <no@spam.fr> a écrit dans le message de
news:ugCLRaUdEHA.3148@TK2MSFTNGP10.phx.gbl...
> Bonjour,
>
> Bien sur, toujours 1 pb...
>
> xlApp = CreateObject("Excel.Application")
>
> xlBook = xlApp.Workbooks.Open(Me.OpenFileDialog_Importation_MP.FileName)
>
> xlSheet = xlBook.Worksheets("Feuil1")
>
> ...
>
> xlBook.Close()
>
> xlApp.Quit()
>
> xlSheet = Nothing
>
> xlBook = Nothing
>
> xlApp = Nothing
>
>
> Mais le processus Excel.exe est toujours actif...
>
> J'ai oublié de faire quekchose?
> Merci d'avance
>
> Stéphane
>
> "Stéphane L." <no@spam.fr> a écrit dans le message de
> news:%233vPLuHdEHA.2352@TK2MSFTNGP09.phx.gbl...
> > Bon.. bin tant pis, j'utilise l'objet Excel.Application
> > Comme ça, j'ai bien A1.
> > Par contre, c'est 10 fois plus lent :/
> >
> > "Stéphane L." <no@spam.fr> a écrit dans le message de
> > news:%23qLQYW$cEHA.3664@TK2MSFTNGP12.phx.gbl...
> > > Bonjour,
> > >
> > > En utilisant la méthode qui permet de lire 1 fichier Excel sans
> l'ouvrir,
> > je
> > > n'arrive pas à trouver la cellule A1.
> > > Dim ds As DataSet
> > >
> > > Dim ma_commande As OleDb.OleDbDataAdapter
> > >
> > > Dim ma_connexion As OleDb.OleDbConnection
> > >
> > > ma_connexion = New
> > OleDb.OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0"
> > > & _
> > >
> > > "; data source=" & Me.OpenFileDialog_Importation_MP.FileName & _
> > >
> > > "; Extended Properties=Excel 8.0;")
> > >
> > > ma_commande = New OleDb.OleDbDataAdapter("Select * from [Feuil1$]",
> > > ma_connexion)
> > >
> > > ds = New DataSet
> > >
> > > ma_commande.Fill(ds)
> > >
> > > feuille_xl = ds.Tables(0)
> > >
> > > 'A1
> > >
> > > If IsDBNull(feuille_xl.Rows(0).ItemArray(0)) Then
> > >
> > > a1 = "VIDE"
> > >
> > > Else
> > >
> > > a1 = feuille_xl.Rows(0).ItemArray(0)
> > >
> > > End If
> > >
> > > 'A5
> > >
> > > If IsDBNull(feuille_xl.Rows(4).ItemArray(0)) Then
> > >
> > > a5 = ""
> > >
> > > Else
> > >
> > > a5 = feuille_xl.Rows(4).ItemArray(0)
> > >
> > > End If
> > >
> > >
> > > Dans mon fichier Excel, j'ai bien quelque chose de marqué en A1 et
A5.
> > > Mais le programme ne me lit 1 valeur que dans A5 (me retourne "VIDE"
> pour
> > > A1).
> > >
> > >
> > > --
> > > Cordialement,
> > >
> > > Stéphane L
> > >
> > >
> >
> >
>
>