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

Automatiser importation fichier excel

8 réponses
Avatar
Nadyajah
Bonjour, Je souhaiterais connaitre la méthode pour créer un bouton pour
automatiser l'importation d'un fichier excel dans access.
La table est toujours la même mais le nom de fichier sera différent.
Est-il possible lorque l'on clique sur le bouton, que l'on demande d'aller
selectionner le fichier?
Cordialement.

Nadya

8 réponses

Avatar
3stone
Salut,

"Nadyajah"
| Bonjour, Je souhaiterais connaitre la méthode pour créer un bouton pour
| automatiser l'importation d'un fichier excel dans access.
| La table est toujours la même mais le nom de fichier sera différent.
| Est-il possible lorque l'on clique sur le bouton, que l'on demande d'aller
| selectionner le fichier?


Pour sélectionner le fichier :
http://www.3stone.be/access/articles.php?lng=fr&pg3

ensuite, pour importer, tu peux utiliser la commande :

DoCmd.TransferSpreadsheet ...


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
Avatar
Nadyajah
Bonjour,

Il me répond : "erreur de compilation : type défini par l'utilisateur non
défini"
Pour information, je suis sous access 2002. Serrait-ce le pb?

De plus, pourrais-tu m'indiquer la fonction exacte à écrire.
Avec
DoCmd.TransferSpreadsheet(acImport,acSpreadsheetTypeExcel9,[matable],[FileName],[HasFieldNames],[Range],[UseOA])
Que dois-je mettre à [FileName] et la suite??
Sachant que le fichier que je vais importer aura un nom différent à chaque
fois?

Merci d'avance.
Avatar
3stone
Salut,

"Nadyajah"
| Il me répond : "erreur de compilation : type défini par l'utilisateur non
| défini"
| Pour information, je suis sous access 2002. Serrait-ce le pb?


Regarde tes références...

car il est *écrit* dans la fonction :

'Nécessite la référence microsoft office x.x object library



| De plus, pourrais-tu m'indiquer la fonction exacte à écrire.
| Avec
|
DoCmd.TransferSpreadsheet(acImport,acSpreadsheetTypeExcel9,[matable],[FileName],[HasFieldNames],[Range],[UseOA])
| Que dois-je mettre à [FileName] et la suite??
| Sachant que le fichier que je vais importer aura un nom différent à chaque
| fois?


la variable qui contient le chemin et le nom du fichie !


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
Avatar
Nadyajah
Re,

désolée mais je ne suis pas une réelle experte en access comme tu as pu le
remarquer. Qu'est-ce que : "microsoft office x.x object library". Ou je
trouve ce truc?
Pour "[FileName]" j'ai bien compris qu'il me demandait le nom du fichier
mais vu qe son nom sera différent à chaque fois c'est pour cela que je
voulais ouvrir une boite de dialogue pour que la personne aille sélectionner
le fichier en question. Par contre le nom de la table est lui bien le même à
chaque fois.

Merci d'avance pour ton aide ....
a+


Salut,

"Nadyajah"
| Il me répond : "erreur de compilation : type défini par l'utilisateur non
| défini"
| Pour information, je suis sous access 2002. Serrait-ce le pb?


Regarde tes références...

car il est *écrit* dans la fonction :

'Nécessite la référence microsoft office x.x object library



| De plus, pourrais-tu m'indiquer la fonction exacte à écrire.
| Avec
|
DoCmd.TransferSpreadsheet(acImport,acSpreadsheetTypeExcel9,[matable],[FileName],[HasFieldNames],[Range],[UseOA])
| Que dois-je mettre à [FileName] et la suite??
| Sachant que le fichier que je vais importer aura un nom différent à chaque
| fois?


la variable qui contient le chemin et le nom du fichie !


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/




Avatar
3stone
Salut,

"Nadyajah"
| désolée mais je ne suis pas une réelle experte en access comme tu as pu le
| remarquer. Qu'est-ce que : "microsoft office x.x object library". Ou je
| trouve ce truc?


Alt + F11 t'envoi dans l'éditeur (VBE) du VBA
Ensuite, menu Outils, Références...
Dans la liste, tu recherche et coche "Microsoft Office 11.0 Object Library"
Puis, par le menu "Débogage, Compiler..."

Tu ne dois plus avoir de message d'erreur !


| Pour "[FileName]" j'ai bien compris qu'il me demandait le nom du fichier
| mais vu qe son nom sera différent à chaque fois c'est pour cela que je
| voulais ouvrir une boite de dialogue pour que la personne aille sélectionner
| le fichier en question. Par contre le nom de la table est lui bien le même à
| chaque fois.


Tu te crée ton bouton (sans l'assistant) et tu mets quelque chose comme :

Dim strFile As String
strFile = fOpenFiles()
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "LaTable", strFile



--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
Avatar
Nadyajah
Re,

Merci beaucoup. Effectivement il me fait bien l'import et me demande de
sélectionner le fichier. Cependant, petit bug il me dit "erreur d'exécution
2391 : le champ F1 n'existe pas dans la table destination 'matable'
Je pense que cela est du au fait que la première ligne contienne les en-têtes"




Salut,

"Nadyajah"
| désolée mais je ne suis pas une réelle experte en access comme tu as pu le
| remarquer. Qu'est-ce que : "microsoft office x.x object library". Ou je
| trouve ce truc?


Alt + F11 t'envoi dans l'éditeur (VBE) du VBA
Ensuite, menu Outils, Références...
Dans la liste, tu recherche et coche "Microsoft Office 11.0 Object Library"
Puis, par le menu "Débogage, Compiler..."

Tu ne dois plus avoir de message d'erreur !


| Pour "[FileName]" j'ai bien compris qu'il me demandait le nom du fichier
| mais vu qe son nom sera différent à chaque fois c'est pour cela que je
| voulais ouvrir une boite de dialogue pour que la personne aille sélectionner
| le fichier en question. Par contre le nom de la table est lui bien le même à
| chaque fois.


Tu te crée ton bouton (sans l'assistant) et tu mets quelque chose comme :

Dim strFile As String
strFile = fOpenFiles()
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "LaTable", strFile



--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/






Avatar
Nadyajah
Effectivement chaque champ est nommé "F1","F2","F3" ...
Il faut donc qu'il conserve les en-têtes, qu'il attribue un clé primaire (là
il n'en créé pas) et qu'il puisse conserver le nom du fichier importé dans la
table.
En effet, j'ai un champ "nom fichier import" et je voudrais bien qu'il me le
complète en automatique.
Merci.


Re,

Merci beaucoup. Effectivement il me fait bien l'import et me demande de
sélectionner le fichier. Cependant, petit bug il me dit "erreur d'exécution
2391 : le champ F1 n'existe pas dans la table destination 'matable'
Je pense que cela est du au fait que la première ligne contienne les en-têtes"




Salut,

"Nadyajah"
| désolée mais je ne suis pas une réelle experte en access comme tu as pu le
| remarquer. Qu'est-ce que : "microsoft office x.x object library". Ou je
| trouve ce truc?


Alt + F11 t'envoi dans l'éditeur (VBE) du VBA
Ensuite, menu Outils, Références...
Dans la liste, tu recherche et coche "Microsoft Office 11.0 Object Library"
Puis, par le menu "Débogage, Compiler..."

Tu ne dois plus avoir de message d'erreur !


| Pour "[FileName]" j'ai bien compris qu'il me demandait le nom du fichier
| mais vu qe son nom sera différent à chaque fois c'est pour cela que je
| voulais ouvrir une boite de dialogue pour que la personne aille sélectionner
| le fichier en question. Par contre le nom de la table est lui bien le même à
| chaque fois.


Tu te crée ton bouton (sans l'assistant) et tu mets quelque chose comme :

Dim strFile As String
strFile = fOpenFiles()
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "LaTable", strFile



--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/








Avatar
Jessy Sempere [MVP]
Bonjour

Si ton fichier contient les en-têtes de champ, il te suffit de modifier la
ligne
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, _
"LaTable", strFile

par
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, _
"LaTable", strFile, True

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------
"Nadyajah" a écrit dans le message de
news:
Effectivement chaque champ est nommé "F1","F2","F3" ...
Il faut donc qu'il conserve les en-têtes, qu'il attribue un clé primaire
(là

il n'en créé pas) et qu'il puisse conserver le nom du fichier importé dans
la

table.
En effet, j'ai un champ "nom fichier import" et je voudrais bien qu'il me
le

complète en automatique.
Merci.


Re,

Merci beaucoup. Effectivement il me fait bien l'import et me demande de
sélectionner le fichier. Cependant, petit bug il me dit "erreur
d'exécution


2391 : le champ F1 n'existe pas dans la table destination 'matable'
Je pense que cela est du au fait que la première ligne contienne les
en-têtes"






Salut,

"Nadyajah"
| désolée mais je ne suis pas une réelle experte en access comme tu as
pu le



| remarquer. Qu'est-ce que : "microsoft office x.x object library". Ou
je



| trouve ce truc?


Alt + F11 t'envoi dans l'éditeur (VBE) du VBA
Ensuite, menu Outils, Références...
Dans la liste, tu recherche et coche "Microsoft Office 11.0 Object
Library"



Puis, par le menu "Débogage, Compiler..."

Tu ne dois plus avoir de message d'erreur !


| Pour "[FileName]" j'ai bien compris qu'il me demandait le nom du
fichier



| mais vu qe son nom sera différent à chaque fois c'est pour cela que
je



| voulais ouvrir une boite de dialogue pour que la personne aille
sélectionner



| le fichier en question. Par contre le nom de la table est lui bien
le même à



| chaque fois.


Tu te crée ton bouton (sans l'assistant) et tu mets quelque chose
comme :




Dim strFile As String
strFile = fOpenFiles()
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9,
"LaTable", strFile






--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/