OVH Cloud OVH Cloud

automatisation d'importation de fichier excel

13 réponses
Avatar
elo02
Bonjour le forum!

Je suis toute nouvelle sur Access (ou presque) et je rencontre un problème
que je ne vois pas comment résoudre!

Je dois traiter des données excel sous access.
Ces données je les reçois au format csv, je les enregistre sous le format
excel.
ensuite je les importe (fichier importer) sous access. En suivant
l'assistant, je rentre le nom des champs et tout et tout.
Je voudrais automatiser ça!
Mais je ne peux pas lier directement. J'ai essayé mais come mon fichier
excel comporte des erreurs (certaines colonnes sont au format texte au lieu
d'être au format numérique) ça me pose des problèmes.

Je voudrais automatiser à chaque ouverture : l'importation du fichier excel
Empl_B9, l'enregistrement du nom des champs et le changement des paramètres
de champ (du texte au numérique)

Est-ce possible?

Merci d'avance

Elo02

10 réponses

1 2
Avatar
Raymond [mvp]
Bonjour.

les fichiers csv peuvent être importés directement sous access sans passer
par excel.
tu peux automatiser l'import:
-en créant la 1ere fois un fichier de spécif dans l'import manuelle (bouton
avancé dans les fenêtres)
-en important ensuite par vba en précisant le fichier spécif dans la
fonction
DoCmd.TransferText acImportDelim, "Fichier spécif", "table", "fichier csv",
True / False

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://www.mpfa.info/ pour débuter sur le forum.
Découvrez le Jargonaute, le langage IT, tel que vous n'avez jamais osé le
parler:
http://www.microsoft.com/france/communautes/jargonaute/


"elo02" a écrit dans le message de news:

| Bonjour le forum!
|
| Je suis toute nouvelle sur Access (ou presque) et je rencontre un problème
| que je ne vois pas comment résoudre!
|
| Je dois traiter des données excel sous access.
| Ces données je les reçois au format csv, je les enregistre sous le format
| excel.
| ensuite je les importe (fichier importer) sous access. En suivant
| l'assistant, je rentre le nom des champs et tout et tout.
| Je voudrais automatiser ça!
| Mais je ne peux pas lier directement. J'ai essayé mais come mon fichier
| excel comporte des erreurs (certaines colonnes sont au format texte au
lieu
| d'être au format numérique) ça me pose des problèmes.
|
| Je voudrais automatiser à chaque ouverture : l'importation du fichier
excel
| Empl_B9, l'enregistrement du nom des champs et le changement des
paramètres
| de champ (du texte au numérique)
|
| Est-ce possible?
|
| Merci d'avance
|
| Elo02
Avatar
elo02
Tout d'abord merci pour ta réponse.
Concernant la deuxième partie(le vba) je pense avoir compris ce que tu veux
dire.
Mais par contre, pour la première partie, j'ai pas du tout compris.
C'est surement tout bête mais comme je débute je n'ai pas encore le
vocabulaire!
Désolé de t'embêter...
elo02


Bonjour.

les fichiers csv peuvent être importés directement sous access sans passer
par excel.
tu peux automatiser l'import:
-en créant la 1ere fois un fichier de spécif dans l'import manuelle (bouton
avancé dans les fenêtres)
-en important ensuite par vba en précisant le fichier spécif dans la
fonction
DoCmd.TransferText acImportDelim, "Fichier spécif", "table", "fichier csv",
True / False

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://www.mpfa.info/ pour débuter sur le forum.
Découvrez le Jargonaute, le langage IT, tel que vous n'avez jamais osé le
parler:
http://www.microsoft.com/france/communautes/jargonaute/


"elo02" a écrit dans le message de news:

| Bonjour le forum!
|
| Je suis toute nouvelle sur Access (ou presque) et je rencontre un problème
| que je ne vois pas comment résoudre!
|
| Je dois traiter des données excel sous access.
| Ces données je les reçois au format csv, je les enregistre sous le format
| excel.
| ensuite je les importe (fichier importer) sous access. En suivant
| l'assistant, je rentre le nom des champs et tout et tout.
| Je voudrais automatiser ça!
| Mais je ne peux pas lier directement. J'ai essayé mais come mon fichier
| excel comporte des erreurs (certaines colonnes sont au format texte au
lieu
| d'être au format numérique) ça me pose des problèmes.
|
| Je voudrais automatiser à chaque ouverture : l'importation du fichier
excel
| Empl_B9, l'enregistrement du nom des champs et le changement des
paramètres
| de champ (du texte au numérique)
|
| Est-ce possible?
|
| Merci d'avance
|
| Elo02





Avatar
Raymond [mvp]
fais un import manuel

menu fichier / données externes / importer
sélectionner le type de ficheirs txt, csv ....
sélectionner ton fichier
affichage de la 1ere fenêtre de paramétrage.
à partir de maintenant, et sur toutes les fenêtres, tu as un bouton qui
s'appelle Avancé qui te permet de modifier les paramètres et de créer un
fichier de spécif. c'est ce nom de fichier qu'il faut indiquer dans le vba.
clair ?

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://www.mpfa.info/ pour débuter sur le forum.
Découvrez le Jargonaute, le langage IT, tel que vous n'avez jamais osé le
parler:
http://www.microsoft.com/france/communautes/jargonaute/


"elo02" a écrit dans le message de news:

| Tout d'abord merci pour ta réponse.
| Concernant la deuxième partie(le vba) je pense avoir compris ce que tu
veux
| dire.
| Mais par contre, pour la première partie, j'ai pas du tout compris.
| C'est surement tout bête mais comme je débute je n'ai pas encore le
| vocabulaire!
| Désolé de t'embêter...
| elo02
Avatar
elo02
En fait pour le code j'ai des questions aussi (désolée...)
*Je l'ai inséré dans un Sub / End Sub mais je ne sais pas si c'est ça que je
devais utiliser...
* quand tu mets "fichier spécif", "table" et "fichier csv" il faut mettre
l'"adresse" (ex:T:ELGEmpl_B9) où juste Empl_B9 ?
*le code je le mets dans module où dans module de classe (je ne connais pas
la différence)
* comment faire pour que cette macro s'execute au démarrage?

Voilà pour les questions pour l'instant!

Merci encore!

elo02


fais un import manuel

menu fichier / données externes / importer
sélectionner le type de ficheirs txt, csv ....
sélectionner ton fichier
affichage de la 1ere fenêtre de paramétrage.
à partir de maintenant, et sur toutes les fenêtres, tu as un bouton qui
s'appelle Avancé qui te permet de modifier les paramètres et de créer un
fichier de spécif. c'est ce nom de fichier qu'il faut indiquer dans le vba.
clair ?

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://www.mpfa.info/ pour débuter sur le forum.
Découvrez le Jargonaute, le langage IT, tel que vous n'avez jamais osé le
parler:
http://www.microsoft.com/france/communautes/jargonaute/


"elo02" a écrit dans le message de news:

| Tout d'abord merci pour ta réponse.
| Concernant la deuxième partie(le vba) je pense avoir compris ce que tu
veux
| dire.
| Mais par contre, pour la première partie, j'ai pas du tout compris.
| C'est surement tout bête mais comme je débute je n'ai pas encore le
| vocabulaire!
| Désolé de t'embêter...
| elo02





Avatar
Raymond [mvp]
pour lancer l'exécution de cet import il est préférable de faire un
formulaire sur lequel tu places un bouton de commande.
dans l'événement sur clic, tu places ta procédure d'import.
Private Sub Commande0_Click()
DoCmd.TransferText acImportDelim, "Fichier spécif", "table", "fichier
csv"
End Sub
pour créer le bouton, lorsque tu as cliqué sur création d'un bouton dans la
boite à outils et sélectionné un emplacement, une fenêtre s'ouvre. tu
cliques annuler.
le bouton est créé mais sans le code.
pour entrer le code, tu sélectionnes le bouton et tu affiches la fenêtre des
propriétés
onglet événement, ligne "sur clic"
cliquer sur le bouton comportant trois points (à droite de la fenêtre) sur
la même ligne.
entrer le code comme indiqué ci-dessus

pour le fichier spécif, indiquer le nom exact que tu as entré dans l'import
manuel
pour la table, indiquer le nom exact de la table qui va recevoir l'import
pour le fichier csv, soit le fichier est dans le même répertoire que la base
et tu n'indiques que le nom, soit le fichier est ailleurs et tu indiques le
chemin complet.
dans tous les cas, indiquer le nom du fichier avec son extension.

ne jamais démarrer un import en automatique au démarrage.
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://www.mpfa.info/ pour débuter sur le forum.
Découvrez le Jargonaute, le langage IT, tel que vous n'avez jamais osé le
parler:
http://www.microsoft.com/france/communautes/jargonaute/


"elo02" a écrit dans le message de news:

| En fait pour le code j'ai des questions aussi (désolée...)
| *Je l'ai inséré dans un Sub / End Sub mais je ne sais pas si c'est ça que
je
| devais utiliser...
| * quand tu mets "fichier spécif", "table" et "fichier csv" il faut mettre
| l'"adresse" (ex:T:ELGEmpl_B9) où juste Empl_B9 ?
| *le code je le mets dans module où dans module de classe (je ne connais
pas
| la différence)
| * comment faire pour que cette macro s'execute au démarrage?
|
| Voilà pour les questions pour l'instant!
|
| Merci encore!
|
| elo02
Avatar
elo02
J'ai un problème: quand je lance le formulaire, le débuggeur me dit "division
par 0" et me surligne la ligne de commande
DoCmd.TransferText acImportDelim, "Empl B9 spécif", "Empl__B9", "Empl B9",
True / False
sachant que le fichier spécif , la table et lefichier csv sont tous sur
T:ELG:B9
Et j'ai un fichier access qui s'est créé tout seul (même nom mais avec
backup en plus). Est-ce normal?



pour lancer l'exécution de cet import il est préférable de faire un
formulaire sur lequel tu places un bouton de commande.
dans l'événement sur clic, tu places ta procédure d'import.
Private Sub Commande0_Click()
DoCmd.TransferText acImportDelim, "Fichier spécif", "table", "fichier
csv"
End Sub
pour créer le bouton, lorsque tu as cliqué sur création d'un bouton dans la
boite à outils et sélectionné un emplacement, une fenêtre s'ouvre. tu
cliques annuler.
le bouton est créé mais sans le code.
pour entrer le code, tu sélectionnes le bouton et tu affiches la fenêtre des
propriétés
onglet événement, ligne "sur clic"
cliquer sur le bouton comportant trois points (à droite de la fenêtre) sur
la même ligne.
entrer le code comme indiqué ci-dessus

pour le fichier spécif, indiquer le nom exact que tu as entré dans l'import
manuel
pour la table, indiquer le nom exact de la table qui va recevoir l'import
pour le fichier csv, soit le fichier est dans le même répertoire que la base
et tu n'indiques que le nom, soit le fichier est ailleurs et tu indiques le
chemin complet.
dans tous les cas, indiquer le nom du fichier avec son extension.

ne jamais démarrer un import en automatique au démarrage.
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://www.mpfa.info/ pour débuter sur le forum.
Découvrez le Jargonaute, le langage IT, tel que vous n'avez jamais osé le
parler:
http://www.microsoft.com/france/communautes/jargonaute/


"elo02" a écrit dans le message de news:

| En fait pour le code j'ai des questions aussi (désolée...)
| *Je l'ai inséré dans un Sub / End Sub mais je ne sais pas si c'est ça que
je
| devais utiliser...
| * quand tu mets "fichier spécif", "table" et "fichier csv" il faut mettre
| l'"adresse" (ex:T:ELGEmpl_B9) où juste Empl_B9 ?
| *le code je le mets dans module où dans module de classe (je ne connais
pas
| la différence)
| * comment faire pour que cette macro s'execute au démarrage?
|
| Voilà pour les questions pour l'instant!
|
| Merci encore!
|
| elo02





Avatar
Raymond [mvp]
j'ai indiqué True/false pour l'exemple mais il ne fallait pas le porter
comme celà. il faut indiquer True ou False pour cette option.
indiquer True si la 1ere ligne contient les noms des champs et indiquer
false si la 1ere ligne contient des données.
bien indiquer lex extensions.
exemple:
DoCmd.TransferText acImportDelim, "Empl B9 spécif", "Empl__B9", "Empl
B9.csv", False

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://www.mpfa.info/ pour débuter sur le forum.
Découvrez le Jargonaute, le langage IT, tel que vous n'avez jamais osé le
parler:
http://www.microsoft.com/france/communautes/jargonaute/


"elo02" a écrit dans le message de news:

| J'ai un problème: quand je lance le formulaire, le débuggeur me dit
"division
| par 0" et me surligne la ligne de commande
| DoCmd.TransferText acImportDelim, "Empl B9 spécif", "Empl__B9", "Empl B9",
| True / False
| sachant que le fichier spécif , la table et lefichier csv sont tous sur
| T:ELG:B9
| Et j'ai un fichier access qui s'est créé tout seul (même nom mais avec
| backup en plus). Est-ce normal?
|
Avatar
elo02
Re:
Maintenant ça me met: "vous ne pouvez pas importer ce fichier". Est-ce un
problème de nom?


j'ai indiqué True/false pour l'exemple mais il ne fallait pas le porter
comme celà. il faut indiquer True ou False pour cette option.
indiquer True si la 1ere ligne contient les noms des champs et indiquer
false si la 1ere ligne contient des données.
bien indiquer lex extensions.
exemple:
DoCmd.TransferText acImportDelim, "Empl B9 spécif", "Empl__B9", "Empl
B9.csv", False

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://www.mpfa.info/ pour débuter sur le forum.
Découvrez le Jargonaute, le langage IT, tel que vous n'avez jamais osé le
parler:
http://www.microsoft.com/france/communautes/jargonaute/


"elo02" a écrit dans le message de news:

| J'ai un problème: quand je lance le formulaire, le débuggeur me dit
"division
| par 0" et me surligne la ligne de commande
| DoCmd.TransferText acImportDelim, "Empl B9 spécif", "Empl__B9", "Empl B9",
| True / False
| sachant que le fichier spécif , la table et lefichier csv sont tous sur
| T:ELG:B9
| Et j'ai un fichier access qui s'est créé tout seul (même nom mais avec
| backup en plus). Est-ce normal?
|





Avatar
Raymond [mvp]
c'est déjà pas mal. il a trouvé le fichier mais c'est son contenu qui ne lui
plait pas.
si tu es en version 2003, changes l'extension de ton fichier en txt au lieu
de csv.

ton fichier est-il confidentiel ?
peux-tu m'envoyer les 50 premières lignes par exemple pour tester ? si oui,
enlèves les xyz. dans mon adresse.

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://www.mpfa.info/ pour débuter sur le forum.
Découvrez le Jargonaute, oserez-vous le parler ?
http://www.microsoft.com/france/communautes/jargonaute/


"elo02" a écrit dans le message de news:

| Re:
| Maintenant ça me met: "vous ne pouvez pas importer ce fichier". Est-ce un
| problème de nom?
|
Avatar
elo02
MErci pour ton aide!
J'ai essayé avec le fichier txt, et ça m'a mis la même chose
je t'ai envoyé le fichier csv.
veux tu le fichier access?


c'est déjà pas mal. il a trouvé le fichier mais c'est son contenu qui ne lui
plait pas.
si tu es en version 2003, changes l'extension de ton fichier en txt au lieu
de csv.

ton fichier est-il confidentiel ?
peux-tu m'envoyer les 50 premières lignes par exemple pour tester ? si oui,
enlèves les xyz. dans mon adresse.

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://www.mpfa.info/ pour débuter sur le forum.
Découvrez le Jargonaute, oserez-vous le parler ?
http://www.microsoft.com/france/communautes/jargonaute/


"elo02" a écrit dans le message de news:

| Re:
| Maintenant ça me met: "vous ne pouvez pas importer ce fichier". Est-ce un
| problème de nom?
|





1 2