Import Excel

Le
DB
Bonjour

Est-il possible en VB d'importer une feuille de calcul d'un classeur Excel
comportant plusieures feuilles dans une table Access en laissant le choix de
la feuille à importer à l'utilisateur ?

Merci d'avance
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Raymond [mvp]
Le #5052781
Bonjour.

tu peux faire ceci:

Dim Feuille As String
Feuille = InputBox("Taper le nom de la feuille", "Import feuille Excel")
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "Matable",
"classeur1.xls", True, Feuille & "!"

le inputbox peut être remplacé par un champ texte du formulaire
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"DB" news:c61peh$7td$
Bonjour

Est-il possible en VB d'importer une feuille de calcul d'un classeur Excel
comportant plusieures feuilles dans une table Access en laissant le choix
de

la feuille à importer à l'utilisateur ?

Merci d'avance




DB
Le #5044281
En fait je voudrais proposer à l'utilisateur la liste des feuilles du
classeur pour qu'il puisse choisir.
Je pense qu'il faut utiliser Automation, mais je n'arrive pas à récupérer la
liste des feuilles.

"Raymond [mvp]" news: uDBa#
Bonjour.

tu peux faire ceci:

Dim Feuille As String
Feuille = InputBox("Taper le nom de la feuille", "Import feuille Excel")
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "Matable",
"classeur1.xls", True, Feuille & "!"

le inputbox peut être remplacé par un champ texte du formulaire
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"DB" news:c61peh$7td$
Bonjour

Est-il possible en VB d'importer une feuille de calcul d'un classeur
Excel


comportant plusieures feuilles dans une table Access en laissant le
choix


de
la feuille à importer à l'utilisateur ?

Merci d'avance








Raymond [mvp]
Le #5044221
Dans ce cas il faut passer par une liste modifiable dans un formulaire. pour
charger la liste modifiable tu peux faire:
Dim XL_App As Excel.Application
Dim I As Integer
Me.MaListe.RowSource = ""
Me.MaListe.RowSourceType = "liste valeurs"
Set XL_App = New Excel.Application
With XL_App
.Workbooks.Open ("classeur1.XLS")
For I = 1 To .ActiveWorkbook.Sheets.Count
Me.MaListe.RowSource = Me.MaListe.RowSource &
.ActiveWorkbook.Sheets(I).Name & ";"
Next
.ActiveWorkbook.Close
.Quit
End With
Set XL_App = Nothing
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "Matable",
"classeur1.xls", True, Me.MaListe & "!"

Bien penser de référencer la librairie excel.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"DB" news:c62u6k$imo$
En fait je voudrais proposer à l'utilisateur la liste des feuilles du
classeur pour qu'il puisse choisir.
Je pense qu'il faut utiliser Automation, mais je n'arrive pas à récupérer
la

liste des feuilles.



DB
Le #5043851
OK merci, çà fonctionne ! C'est tout à fait ce que je voulais.

"Raymond [mvp]" news:
Dans ce cas il faut passer par une liste modifiable dans un formulaire.
pour

charger la liste modifiable tu peux faire:
Dim XL_App As Excel.Application
Dim I As Integer
Me.MaListe.RowSource = ""
Me.MaListe.RowSourceType = "liste valeurs"
Set XL_App = New Excel.Application
With XL_App
.Workbooks.Open ("classeur1.XLS")
For I = 1 To .ActiveWorkbook.Sheets.Count
Me.MaListe.RowSource = Me.MaListe.RowSource &
.ActiveWorkbook.Sheets(I).Name & ";"
Next
.ActiveWorkbook.Close
.Quit
End With
Set XL_App = Nothing
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "Matable",
"classeur1.xls", True, Me.MaListe & "!"

Bien penser de référencer la librairie excel.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"DB" news:c62u6k$imo$
En fait je voudrais proposer à l'utilisateur la liste des feuilles du
classeur pour qu'il puisse choisir.
Je pense qu'il faut utiliser Automation, mais je n'arrive pas à
récupérer


la
liste des feuilles.








Publicité
Poster une réponse
Anonyme