{Access} Import/Export automatique Excel

Résolu/Fermé
Signaler
Messages postés
21
Date d'inscription
mercredi 17 février 2010
Statut
Membre
Dernière intervention
2 avril 2010
-
Messages postés
1040
Date d'inscription
mercredi 30 avril 2008
Statut
Membre
Dernière intervention
1 août 2014
-
Bonjour,

J'aimerai faire des imports et exports automatiques dans Access a partir de fichiers Excel.
J'aimerai qu'Access aille chercher les nouveaux fichiers Excel contenu dans un repertoire pour les importer dans les tables et ensuite fasse un export des nouvelles données vers un fichier excel précis selon la requête que j'ai déja écrite.
L'opération pourrait être par exemple commandée par un clic sur un bouton "Import/export".

Je suppose que tout ça doit être fait avec du VB, mais je suis loin d'être un spécialiste.

3 réponses

Messages postés
1040
Date d'inscription
mercredi 30 avril 2008
Statut
Membre
Dernière intervention
1 août 2014
111
Bonjour failp,

Hypothétiquement, et si tous les fichiers sont sur le même ordinateur ou réseau, la
solution des fichiers Excel attachés à une base ACCESS est une solution plausible.

Le gros avantage : Ce système de gestion exclu les manipulations d'import-export.

Cordialement
Messages postés
21
Date d'inscription
mercredi 17 février 2010
Statut
Membre
Dernière intervention
2 avril 2010

Merci sauf que je souhaiterai que des fichiers excel créés soient automatiquement importés.

Attaché un fichier Excel à une base doit être fait manuellement au moins une fois et ensuite quand des données sont ajoutées aux fichers Excel elles sont automatiquement importées dans la table access.
Moi je voudrais que quand un fichier Excel est ajouté dans un répertoire, il soit ajouté dans la base access. Pas forcément automatiquement mais par exemple en lançant un programme type module dans access. Un programme qui reconnait les fichiers pas encore importés et qui les importe.

Je sais pas si je suis très claire, désolé si ce n'est pas le cas
Messages postés
1040
Date d'inscription
mercredi 30 avril 2008
Statut
Membre
Dernière intervention
1 août 2014
111
Bonne soirée failp,

Votre description est claire.
Dans mes archives, j'ai trouvé ce qui suit. Ce n'est pas ce
que vous souhaitez, mais en l'adaptant il doit être possible de faire avancer votre projet.....
NB : Je n'ai jamais utilisé cette solution.
**********
REM Importation massive de fichier Excel dans ACCESS

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,
Il convient de personnaliser le code ci-dessus ainsi :
- A la place de "D:\TestXl\" (dans la première instruction Dir, et dans la ligne DoCmd.Transfer...) , mettre le répertoire contenant les fichiers Excel,
- Vérifier la version de Excel, pour que la constante acSpreadsheetTypeExcel ? corresponde,
- Si les fichiers Excel contiennent en première ligne les en-têtes de colonne, indiquer True en avant dernier argument,
- En dernier argument, mettre la plage de cellules à importer de Excel vers Access. Si c'est variable (entre 800 et 1000, par ex.), mettre "A1:I1500". Les lignes vides ne seront pas importées.

Cordialement