OVH Cloud OVH Cloud

Importer des champs spécifiques d'un fichier Excel dans Access à

6 réponses
Avatar
Gary
Bonjour,

J'ai fait une enqu=EAte avec un formulaire sur Excel. J'ai=20
re=E7u mes 50 fichiers en retour. Je souhaite maintenant=20
importer toutes ces donn=E9es dans une base Access (dans une=20
m=EAme table) afin de pouvoir les traiter. J'imagine que le=20
meilleur moyen est de faire une macro. Mais comment???

Merci infiniment si quelqu'un pouvais me donner un coup de=20
main.

Salutations,
Gary

6 réponses

Avatar
Yann
Salut Gary,
Tu peux faire une petite macro du style
Lstr_Path = "Ton Chemin"
Lstr_File = Dir(Lstr_Path & "*.xls")
While Lstr_File <> Empty
DoCmd.TransferSpreadsheet , , Lstr_File, Lstr_Path & ""
& Lstr_File, True
Lstr_SQL = "INSERT INTO Table1 (Champ1, .....)"
Lstr_SQL = Lstr_SQL & " SELECT Champ1, ...."
Lstr_SQL = Lstr_SQL & " FROM " & Lstr_File
Lstr_SQL = Lstr_SQL & " ;"
Docmd.RunSQL Lstr_SQL
DoCmd.DeleteObject acTable, Lstr_File
LstrFile = Dir
Wend

Bye
Yann

-----Message d'origine-----
Bonjour,

J'ai fait une enquête avec un formulaire sur Excel. J'ai
reçu mes 50 fichiers en retour. Je souhaite maintenant
importer toutes ces données dans une base Access (dans
une

même table) afin de pouvoir les traiter. J'imagine que
le

meilleur moyen est de faire une macro. Mais comment???

Merci infiniment si quelqu'un pouvais me donner un coup
de

main.

Salutations,
Gary
.



Avatar
Salut Yann,

Merci infiniment pour ton aide.
Tu vas un peu vite pour moi, j'ai de la peine à m'y
retrouver. Peux-tu me donner quelques explications
supplémentaires:

1) Je dois écrire cette macro dans VSB dans Access? Si
oui, par quel bout dois-je commencer.
3) Ma base Access est vite pour l'instant. Est-ce que je
dois créer une table avant de lancer la macro?
2) Que veux-tu dire par "Ton chemin"?

Désolé je suis encore un peu novice.
Merci et a++++
Gary

-----Message d'origine-----
Salut Gary,
Tu peux faire une petite macro du style
Lstr_Path = "Ton Chemin"
Lstr_File = Dir(Lstr_Path & "*.xls")
While Lstr_File <> Empty
DoCmd.TransferSpreadsheet , , Lstr_File, Lstr_Path & ""
& Lstr_File, True
Lstr_SQL = "INSERT INTO Table1 (Champ1, .....)"
Lstr_SQL = Lstr_SQL & " SELECT Champ1, ...."
Lstr_SQL = Lstr_SQL & " FROM " & Lstr_File
Lstr_SQL = Lstr_SQL & " ;"
Docmd.RunSQL Lstr_SQL
DoCmd.DeleteObject acTable, Lstr_File
LstrFile = Dir
Wend

Bye
Yann

-----Message d'origine-----
Bonjour,

J'ai fait une enquête avec un formulaire sur Excel. J'ai
reçu mes 50 fichiers en retour. Je souhaite maintenant
importer toutes ces données dans une base Access (dans
une

même table) afin de pouvoir les traiter. J'imagine que
le

meilleur moyen est de faire une macro. Mais comment???

Merci infiniment si quelqu'un pouvais me donner un coup
de

main.

Salutations,
Gary
.

.





Avatar
Yann
Salut Gary,
1 - Dans Access, tu crées un module ans lequel tu y mets
le code suivant
Public Sub ImportDataFromXLSFiles()
Dim Lstr_Path AS String
Dim Lstr_File AS String
Lstr_Path = "C:EnqueteXLSFilesReturn" '2-par exemple
Lstr_File = Dir(Lstr_Path & "*.xls")
While Lstr_File <> Empty
DoCmd.TransferSpreadsheet , , Lstr_File, Lstr_Path & ""
& Lstr_File, True
If Lstr_File = Dir(Lstr_Path & "*.xls") Then
Lstr_SQL = "SELECT Table1.Form_interne"
Lstr_SQL = Lstr_SQL & " INTO Table1"
Lstr_SQL = Lstr_SQL & " FROM Table1;"
Else
Lstr_SQL = "INSERT INTO Table1 (Champ1, .....)"
Lstr_SQL = Lstr_SQL & " SELECT Champ1, ...."
Lstr_SQL = Lstr_SQL & " FROM " & Lstr_File
Lstr_SQL = Lstr_SQL & " ;"
End If
Docmd.RunSQL Lstr_SQL
DoCmd.DeleteObject acTable, Lstr_File
LstrFile = Dir
Wend
End Sub
3-Avec ce nouveau code, tu n'as pas besoin de créer ta t

Bye
Yann

-----Message d'origine-----
Salut Yann,

Merci infiniment pour ton aide.
Tu vas un peu vite pour moi, j'ai de la peine à m'y
retrouver. Peux-tu me donner quelques explications
supplémentaires:

1) Je dois écrire cette macro dans VSB dans Access? Si
oui, par quel bout dois-je commencer.
3) Ma base Access est vite pour l'instant. Est-ce que je
dois créer une table avant de lancer la macro?
2) Que veux-tu dire par "Ton chemin"?

Désolé je suis encore un peu novice.
Merci et a++++
Gary

-----Message d'origine-----
Salut Gary,
Tu peux faire une petite macro du style
Lstr_Path = "Ton Chemin"
Lstr_File = Dir(Lstr_Path & "*.xls")
While Lstr_File <> Empty
DoCmd.TransferSpreadsheet , , Lstr_File, Lstr_Path
& ""


& Lstr_File, True
Lstr_SQL = "INSERT INTO Table1 (Champ1, .....)"
Lstr_SQL = Lstr_SQL & " SELECT Champ1, ...."
Lstr_SQL = Lstr_SQL & " FROM " & Lstr_File
Lstr_SQL = Lstr_SQL & " ;"
Docmd.RunSQL Lstr_SQL
DoCmd.DeleteObject acTable, Lstr_File
LstrFile = Dir
Wend

Bye
Yann

-----Message d'origine-----
Bonjour,

J'ai fait une enquête avec un formulaire sur Excel.
J'ai



reçu mes 50 fichiers en retour. Je souhaite maintenant
importer toutes ces données dans une base Access (dans
une

même table) afin de pouvoir les traiter. J'imagine que
le

meilleur moyen est de faire une macro. Mais comment???

Merci infiniment si quelqu'un pouvais me donner un
coup



de
main.

Salutations,
Gary
.

.


.






Avatar
Yann
Salut Gary,
1 - Dans Access, tu crées un module ans lequel tu y mets
le code suivant
Public Sub ImportDataFromXLSFiles()
Dim Lstr_Path AS String
Dim Lstr_File AS String
Lstr_Path = "C:EnqueteXLSFilesReturn" '2-par exemple
Lstr_File = Dir(Lstr_Path & "*.xls")
While Lstr_File <> Empty
DoCmd.TransferSpreadsheet , , Lstr_File, Lstr_Path & ""
& Lstr_File, True
If Lstr_File = Dir(Lstr_Path & "*.xls") Then
Lstr_SQL = "SELECT Table1.Form_interne"
Lstr_SQL = Lstr_SQL & " INTO Table1"
Lstr_SQL = Lstr_SQL & " FROM Table1;"
Else
Lstr_SQL = "INSERT INTO Table1 (Champ1, .....)"
Lstr_SQL = Lstr_SQL & " SELECT Champ1, ...."
Lstr_SQL = Lstr_SQL & " FROM " & Lstr_File
Lstr_SQL = Lstr_SQL & " ;"
End If
Docmd.RunSQL Lstr_SQL
DoCmd.DeleteObject acTable, Lstr_File
LstrFile = Dir
Wend
End Sub
3-Avec ce nouveau code, tu n'as pas besoin de créer ta
table initialement.

Bye
Yann

-----Message d'origine-----
Salut Yann,

Merci infiniment pour ton aide.
Tu vas un peu vite pour moi, j'ai de la peine à m'y
retrouver. Peux-tu me donner quelques explications
supplémentaires:

1) Je dois écrire cette macro dans VSB dans Access? Si
oui, par quel bout dois-je commencer.
3) Ma base Access est vite pour l'instant. Est-ce que je
dois créer une table avant de lancer la macro?
2) Que veux-tu dire par "Ton chemin"?

Désolé je suis encore un peu novice.
Merci et a++++
Gary

-----Message d'origine-----
Salut Gary,
Tu peux faire une petite macro du style
Lstr_Path = "Ton Chemin"
Lstr_File = Dir(Lstr_Path & "*.xls")
While Lstr_File <> Empty
DoCmd.TransferSpreadsheet , , Lstr_File, Lstr_Path
& ""


& Lstr_File, True
Lstr_SQL = "INSERT INTO Table1 (Champ1, .....)"
Lstr_SQL = Lstr_SQL & " SELECT Champ1, ...."
Lstr_SQL = Lstr_SQL & " FROM " & Lstr_File
Lstr_SQL = Lstr_SQL & " ;"
Docmd.RunSQL Lstr_SQL
DoCmd.DeleteObject acTable, Lstr_File
LstrFile = Dir
Wend

Bye
Yann

-----Message d'origine-----
Bonjour,

J'ai fait une enquête avec un formulaire sur Excel.
J'ai



reçu mes 50 fichiers en retour. Je souhaite maintenant
importer toutes ces données dans une base Access (dans
une

même table) afin de pouvoir les traiter. J'imagine que
le

meilleur moyen est de faire une macro. Mais comment???

Merci infiniment si quelqu'un pouvais me donner un
coup



de
main.

Salutations,
Gary
.

.


.






Avatar
Salut Yann,

Super merci. J'ai bien recopié le code mais la macro bug
sur la ligne DoCmd.TransferSpreadsheet , , Lstr_File,
Lstr_Path & ""

Voici le message :

Erreur d'exécution '3125'

Le moteur de base de données ne peut trouver '222105.xls".
Assurez vous que le nom du paramètre ou d'alias est valide
etc.....

Je me pose aussi la question sur comment définir les
cellules dans mes fichiers Excel a importer dans Access
dans le code que tu me proposes.

Encore mille mercis pour le temps que tu consacres à
m'aider.
A++++
Gary
-----Message d'origine-----
Salut Gary,
1 - Dans Access, tu crées un module ans lequel tu y mets
le code suivant
Public Sub ImportDataFromXLSFiles()
Dim Lstr_Path AS String
Dim Lstr_File AS String
Lstr_Path = "C:EnqueteXLSFilesReturn" '2-par exemple
Lstr_File = Dir(Lstr_Path & "*.xls")
While Lstr_File <> Empty
DoCmd.TransferSpreadsheet , , Lstr_File, Lstr_Path & ""
& Lstr_File, True
If Lstr_File = Dir(Lstr_Path & "*.xls") Then
Lstr_SQL = "SELECT Table1.Form_interne"
Lstr_SQL = Lstr_SQL & " INTO Table1"
Lstr_SQL = Lstr_SQL & " FROM Table1;"
Else
Lstr_SQL = "INSERT INTO Table1 (Champ1, .....)"
Lstr_SQL = Lstr_SQL & " SELECT Champ1, ...."
Lstr_SQL = Lstr_SQL & " FROM " & Lstr_File
Lstr_SQL = Lstr_SQL & " ;"
End If
Docmd.RunSQL Lstr_SQL
DoCmd.DeleteObject acTable, Lstr_File
LstrFile = Dir
Wend
End Sub
3-Avec ce nouveau code, tu n'as pas besoin de créer ta
table initialement.

Bye
Yann

-----Message d'origine-----
Salut Yann,

Merci infiniment pour ton aide.
Tu vas un peu vite pour moi, j'ai de la peine à m'y
retrouver. Peux-tu me donner quelques explications
supplémentaires:

1) Je dois écrire cette macro dans VSB dans Access? Si
oui, par quel bout dois-je commencer.
3) Ma base Access est vite pour l'instant. Est-ce que je
dois créer une table avant de lancer la macro?
2) Que veux-tu dire par "Ton chemin"?

Désolé je suis encore un peu novice.
Merci et a++++
Gary

-----Message d'origine-----
Salut Gary,
Tu peux faire une petite macro du style
Lstr_Path = "Ton Chemin"
Lstr_File = Dir(Lstr_Path & "*.xls")
While Lstr_File <> Empty
DoCmd.TransferSpreadsheet , , Lstr_File, Lstr_Path
& ""


& Lstr_File, True
Lstr_SQL = "INSERT INTO Table1 (Champ1, .....)"
Lstr_SQL = Lstr_SQL & " SELECT Champ1, ...."
Lstr_SQL = Lstr_SQL & " FROM " & Lstr_File
Lstr_SQL = Lstr_SQL & " ;"
Docmd.RunSQL Lstr_SQL
DoCmd.DeleteObject acTable, Lstr_File
LstrFile = Dir
Wend

Bye
Yann

-----Message d'origine-----
Bonjour,

J'ai fait une enquête avec un formulaire sur Excel.
J'ai



reçu mes 50 fichiers en retour. Je souhaite maintenant
importer toutes ces données dans une base Access (dans
une

même table) afin de pouvoir les traiter. J'imagine que
le

meilleur moyen est de faire une macro. Mais comment???

Merci infiniment si quelqu'un pouvais me donner un
coup



de
main.

Salutations,
Gary
.

.


.


.







Avatar
Yann
Re-,
Et ben oui, la suite de la ligne est en dessous... c'est-
à-dire >& Lstr_File, True

Bye
Yann

-----Message d'origine-----
Salut Yann,

Super merci. J'ai bien recopié le code mais la macro bug
sur la ligne DoCmd.TransferSpreadsheet , , Lstr_File,
Lstr_Path & ""

Voici le message :

Erreur d'exécution '3125'

Le moteur de base de données ne peut
trouver '222105.xls".

Assurez vous que le nom du paramètre ou d'alias est
valide

etc.....

Je me pose aussi la question sur comment définir les
cellules dans mes fichiers Excel a importer dans Access
dans le code que tu me proposes.

Encore mille mercis pour le temps que tu consacres à
m'aider.
A++++
Gary
-----Message d'origine-----
Salut Gary,
1 - Dans Access, tu crées un module ans lequel tu y
mets


le code suivant
Public Sub ImportDataFromXLSFiles()
Dim Lstr_Path AS String
Dim Lstr_File AS String
Lstr_Path = "C:EnqueteXLSFilesReturn" '2-par exemple
Lstr_File = Dir(Lstr_Path & "*.xls")
While Lstr_File <> Empty
DoCmd.TransferSpreadsheet , , Lstr_File, Lstr_Path
& ""


& Lstr_File, True
If Lstr_File = Dir(Lstr_Path & "*.xls") Then
Lstr_SQL = "SELECT Table1.Form_interne"
Lstr_SQL = Lstr_SQL & " INTO Table1"
Lstr_SQL = Lstr_SQL & " FROM Table1;"
Else
Lstr_SQL = "INSERT INTO Table1 (Champ1, .....)"
Lstr_SQL = Lstr_SQL & " SELECT Champ1, ...."
Lstr_SQL = Lstr_SQL & " FROM " & Lstr_File
Lstr_SQL = Lstr_SQL & " ;"
End If
Docmd.RunSQL Lstr_SQL
DoCmd.DeleteObject acTable, Lstr_File
LstrFile = Dir
Wend
End Sub
3-Avec ce nouveau code, tu n'as pas besoin de créer ta
table initialement.

Bye
Yann

-----Message d'origine-----
Salut Yann,

Merci infiniment pour ton aide.
Tu vas un peu vite pour moi, j'ai de la peine à m'y
retrouver. Peux-tu me donner quelques explications
supplémentaires:

1) Je dois écrire cette macro dans VSB dans Access? Si
oui, par quel bout dois-je commencer.
3) Ma base Access est vite pour l'instant. Est-ce que
je



dois créer une table avant de lancer la macro?
2) Que veux-tu dire par "Ton chemin"?

Désolé je suis encore un peu novice.
Merci et a++++
Gary

-----Message d'origine-----
Salut Gary,
Tu peux faire une petite macro du style
Lstr_Path = "Ton Chemin"
Lstr_File = Dir(Lstr_Path & "*.xls")
While Lstr_File <> Empty
DoCmd.TransferSpreadsheet , , Lstr_File, Lstr_Path
& ""


& Lstr_File, True
Lstr_SQL = "INSERT INTO Table1 (Champ1, .....)"
Lstr_SQL = Lstr_SQL & " SELECT Champ1, ...."
Lstr_SQL = Lstr_SQL & " FROM " & Lstr_File
Lstr_SQL = Lstr_SQL & " ;"
Docmd.RunSQL Lstr_SQL
DoCmd.DeleteObject acTable, Lstr_File
LstrFile = Dir
Wend

Bye
Yann

-----Message d'origine-----
Bonjour,

J'ai fait une enquête avec un formulaire sur Excel.
J'ai



reçu mes 50 fichiers en retour. Je souhaite
maintenant





importer toutes ces données dans une base Access
(dans





une
même table) afin de pouvoir les traiter. J'imagine
que





le
meilleur moyen est de faire une macro. Mais
comment???






Merci infiniment si quelqu'un pouvais me donner un
coup



de
main.

Salutations,
Gary
.

.


.


.


.