{Access} Importer plusieurs fichiers excel

Fermé
rpouget - 4 févr. 2010 à 15:46
 rpouget - 8 févr. 2010 à 16:09
Bonjour,
je cherche à exporter plusieurs fichiers excel (environ 200) d'un même dossier vers une même table sous access.
Tous les fichiers excel sont construits de la manière.
Merci du coup de main !
A voir également:

8 réponses

Jean_Jacques Messages postés 1040 Date d'inscription mercredi 30 avril 2008 Statut Membre Dernière intervention 1 août 2014 112
5 févr. 2010 à 11:06
Bonjour rpouget,

En fait, du point de vue ACCESS, il s'agit d'importer les fichiers EXCEL ...
Procédure à suivre :

Activer la Base ACCESS :

- Menu Fichier
- Données externes
- Importer
- et .... Démarche assistée en pas à pas .... pour désigner le fichier objet de l'import

Malheureusement l'import se fait à l'unité, car les principes qui gèrent les bases de données excluent en principe que plus d'un fichier contienne des informations de même nature ...

Cordialement
0
rpouget Messages postés 3 Date d'inscription jeudi 4 février 2010 Statut Membre Dernière intervention 5 février 2010
5 févr. 2010 à 13:28
Merci quand même, mais je préfèrerai automatiser. Je suppose qu'il faut un petit programme en VB, mais je ne suis pas assez bon pour ça !
Cordialement
0
Utilisateur anonyme
5 févr. 2010 à 11:15
Si tu touches un peu en VBA, penches-toi sur la méthode docmd.TransferSpreadsheet.
Elle marche très bien pour ce que tu as à faire.
0
rpouget Messages postés 3 Date d'inscription jeudi 4 février 2010 Statut Membre Dernière intervention 5 février 2010
5 févr. 2010 à 13:30
Je me doutais qu'il y avait du VB la dessous, mais je ne touche pas suffisamment !
Si tu as une idée des quelques lignes à écrire, je suis preneur.
Merci
0
Utilisateur anonyme
5 févr. 2010 à 14:29
Est-ce que tous tes fichiers excel contiennent le même format de données, et le même nombre de lignes ?
Si c'est le cas, je peux te donner quelques lignes de code qui devraient marcher.
0
rpouget Messages postés 3 Date d'inscription jeudi 4 février 2010 Statut Membre Dernière intervention 5 février 2010
5 févr. 2010 à 14:59
Mes fichiers excel contiennent le même nombre de colonnes avec les mêmes formats de données, mais pas le même nombre de lignes (entre 800 et 1000 lignes).
Merci si tu as une idées !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
5 févr. 2010 à 15:33
Ok, je te prépare un petit bout de code pour tout à l'heure...
0
Utilisateur anonyme
5 févr. 2010 à 15:51
Si j'ai bien suivi, tu as 200 fichiers Excel contenant chacun entre 800 et 1000 lignes !
Pour le fun, combien de colonnes ?
ta table va être lourde !
0
juste 7 colonnes !
oui une bonne table, surtout que je répète l'opération une vingtaine de fois.
Mais vu la bête que je me suis commandé, ça devrai gérer.
Merci
@+
0
Utilisateur anonyme
5 févr. 2010 à 18:17
Désolé, pas eu le temps de m'en occuper (je suis au boulot, là !)

J'essayerai d'y jeter un oeil ce week-end.
0
Utilisateur anonyme
8 févr. 2010 à 15:41
Bonjour,

Je viens de trouver 5 minutes pour toi, et voilà le résultat :

Function ImporteExcel()

Dim NomFich As String

NomFich = Dir("D:\TestXl\*.xls")

Do While NomFich <> ""

DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "TableTempo", "D:\TestXl\" & NomFich, False, "A1:I300"

NomFich = Dir
Loop

End Function

Alors, ça fonctionne, mais il faut au préalable que ta table devant recevoir les données d'Excel soit créée avec 7 champs dont le type (texte, date...) correspond à tes colonnes Excel, dans le même ordre que tes colonnes Excel,
Tu dois personnaliser le code ci-dessus ainsi :
- A la place de "D:\TestXl\" (dans la première instruction Dir, et dans la ligne DoCmd.Transfer...) , tu mets le répertoire contenant tes fichiers Excel,
- Tu vérifies la version de Excel, pour que la constante acSpreadsheetTypeExcel? corresponde,
- Si tes fichiers Excel contiennent en première ligne les en-têtes de colonne, indique True en avant dernier argument,
- En dernier argument, tu mets la plage de cellules à importer de Excel vers Access. Puisque c'est variable (entre 800 et 1000, m'as-tu dit), tu mets "A1:I1500". Les lignes vides ne seront pas importées.

Voilà, j'ai fait le test sur ma machine, et ça tourne.
0
Ben ça c'est du coup de main ! Je teste ça de suite.
Encore merci !
0