Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Import des fichier excel dans une Table access

4 réponses
Avatar
bsh77
Bonjour,

Merci d'avance de lire ce message.
Voilà mon pb : j'ai des centaines de fichiers xls (structure de table
identique), je voudrais écrire un programme en vb pour les importer tous
dans une seule table access.
Quelqu'un pourrait-il m'aider svp.
Mille Mercis
BS

4 réponses

Avatar
Jessy SEMPERE
Bonjour

Le code qui suit devrait te convenir, pour l'appeler tu dois
faire :
ImportAllFile ("Le répertoire", "la table destination")

PS : tous tes fichiers excel doivent être dans le même répertoire...

********************************************
Public Function ImportAllFile(strDir As String, strTable As String)

Dim intfile As Integer
Dim strFile As String

intfile = 0: strFile = ""

With Application.FileSearch
.LookIn = strDir: .FileName = "*.xls"
If .execute > 0 Then
For intfile = 1 To .FoundFiles.Count
strFile = .FoundFiles(intfile)
DoCmd.TransferSpreadsheet acImport,
acSpreadsheetTypeExcel97, _
strTable, strFile, True
Next
End If
End With

End Function
********************************************

--
@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"bsh77" a écrit dans le message news:
brrklc$269$
Bonjour,

Merci d'avance de lire ce message.
Voilà mon pb : j'ai des centaines de fichiers xls (structure de table
identique), je voudrais écrire un programme en vb pour les importer tous
dans une seule table access.
Quelqu'un pourrait-il m'aider svp.
Mille Mercis
BS




Avatar
bsh77
Merci, je vais tester ce précieux bout de codes immédiatement.
A bientot
BS

"Jessy SEMPERE" a écrit dans le message de news:
brrl3m$kef$
Bonjour

Le code qui suit devrait te convenir, pour l'appeler tu dois
faire :
ImportAllFile ("Le répertoire", "la table destination")

PS : tous tes fichiers excel doivent être dans le même répertoire...

********************************************
Public Function ImportAllFile(strDir As String, strTable As String)

Dim intfile As Integer
Dim strFile As String

intfile = 0: strFile = ""

With Application.FileSearch
.LookIn = strDir: .FileName = "*.xls"
If .execute > 0 Then
For intfile = 1 To .FoundFiles.Count
strFile = .FoundFiles(intfile)
DoCmd.TransferSpreadsheet acImport,
acSpreadsheetTypeExcel97, _
strTable, strFile, True
Next
End If
End With

End Function
********************************************

--
@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"bsh77" a écrit dans le message news:
brrklc$269$
Bonjour,

Merci d'avance de lire ce message.
Voilà mon pb : j'ai des centaines de fichiers xls (structure de table
identique), je voudrais écrire un programme en vb pour les importer tous
dans une seule table access.
Quelqu'un pourrait-il m'aider svp.
Mille Mercis
BS








Avatar
patrick.lyon
"Jessy SEMPERE" a utilisé son clavier pour écrire :
Bonjour

Le code qui suit devrait te convenir, pour l'appeler tu dois
faire :
ImportAllFile ("Le répertoire", "la table destination")

PS : tous tes fichiers excel doivent être dans le même répertoire...

********************************************
Public Function ImportAllFile(strDir As String, strTable As String)

Dim intfile As Integer
Dim strFile As String

intfile = 0: strFile = ""

With Application.FileSearch
.LookIn = strDir: .FileName = "*.xls"
If .execute > 0 Then
For intfile = 1 To .FoundFiles.Count
strFile = .FoundFiles(intfile)
DoCmd.TransferSpreadsheet acImport,
acSpreadsheetTypeExcel97, _
strTable, strFile, True
Next
End If
End With

End Function
********************************************

--


bonjour
je vais garder precieusement ton code
peux tu me dire si il gere le fait que tantôt acces détecte la 1ere ligne comm etant le titre des champs et tantôt il faut lui
cobcher la case

--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com

Avatar
Jessy SEMPERE
Bonjour
je vais garder precieusement ton code


Si j'ai le temps je le mettrais sur mon site... ;-)

peux tu me dire si il gere le fait que tantôt acces détecte la
1ere ligne comm etant le titre des champs et tantôt il faut lui
cobcher la case


Ben il suffit de rajouter un argument dans la fonction demandant
si on veut ou non l'en-tête des champs

Exemple :
*************************************************
Public Function ImportAllFile(strDir As String, strTable As String, _
blnFldName As Boolean)

Dim intfile As Integer
Dim strFile As String

intfile = 0: strFile = ""

With Application.FileSearch
.LookIn = strDir: .FileName = "*.xls"
If .execute > 0 Then
For intfile = 1 To .FoundFiles.Count
strFile = .FoundFiles(intfile)
DoCmd.TransferSpreadsheet acImport, _
acSpreadsheetTypeExcel97, _
strTable, strFile, blnFldName
Next
End If
End With

End Function
*************************************************
@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------