Imaginons que vous désiriez importer non
pas une seule feuille Excel, mais toutes les feuilles d'un classeur. Comment
faire ?
Astuce aimablement envoyée par Ludovic.
Mode d'emploi :
- Dans la base de données Access dans laquelle vous désirez importer l'ensemble de toutes les feuilles de calcul d'un fichier Excel, écrivez le code suivant dans un module VBA, et exécutez le. Le fichier Excel s'appelle ici C:\TOTO.XLS. Il faut bien évidemment l'adapter à votre situation.
Sub ImportationGlobale
Dim appXl As Excel.Application
Dim intNbFeuille As Integer
Dim intIndex As Integer
Dim avarTabFeuille() As Variant
Dim WorkSheet As Excel.WorkSheet
Dim tdf As TableDef
Set appXl = CreateObject("Excel.Application")
intNbFeuille = 1
'OUVRE LE FICHIER .XLS ET TROUVE LERS DIFFERENTES
FEUILLES
With appXl
.Workbooks.Open "C:\toto.xls"
ReDim avarTabFeuille(.Worksheets.Count)
For Each WorkSheet In .Worksheets
avarTabFeuille(intNbFeuille) = WorkSheet.name
intNbFeuille = intNbFeuille + 1
Next
.Quit
End With
Set appXl = Nothing
'CREE UNE TABLE LINKEE POUR CHACUNES DES FEUILLES
TROUVEES
For intIndex = 1 To UBound(avarTabFeuille)
fEntrer = False
Set tdf = CurrentDb.CreateTableDef(avarTabFeuille(intIndex))
tdf.Connect = "Excel 5.0;DATABASE=" &
Result
tdf.SourceTableName = avarTabFeuille(intIndex) &
"$"
CurrentDb.TableDefs.Append tdf
CurrentDb.TableDefs.Refresh
Next
End Sub