[VBA] importer un fichier csv

outofbusiness Messages postés 36 Date d'inscription dimanche 2 février 2003 Statut Membre Dernière intervention 4 juin 2009 - 8 mai 2007 à 20:40
outofbusiness Messages postés 36 Date d'inscription dimanche 2 février 2003 Statut Membre Dernière intervention 4 juin 2009 - 9 mai 2007 à 18:13
bonjour,

je voudrais importer un fichier au format csv sous forme de table.
En fait, je crée au préalable un BdD access avec ça :

Set mobj = CreateObject("access.application")
mobj.Visible = True

et ensuite à partir d'une boite de dialogue en VBA qui me demande de saisir le fichier source csv, je voudrais le mettre sous forme de table dans la base que je viens de créer.
comme je suis nouveau en ADO, je ne vois pas trop comment faire ça pour le moment.

pourriez vous m'apporter une solution ou me guider SVP ??

Merci d'avance !

5 réponses

jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
9 mai 2007 à 09:33
Salut,
Le peu de code que tu as donner ne te permet PAS de creer un base de données MAIS de lancer ACCESS rien de plus.
Donc il faudrait expliquer un peu mieux ce que tu souhaites faire avec ce fichier CSV?

@+: Ju£i?n
Pensez: Réponse acceptée
0
outofbusiness Messages postés 36 Date d'inscription dimanche 2 février 2003 Statut Membre Dernière intervention 4 juin 2009
9 mai 2007 à 15:31
pour etre très clair, ce que je souhaite faire en VBA, on le fait comme ça par les menus :

sous MSAccess :
file>get external data>import
'on sélectionne alors le fichier csv à importer; les champs étant délimités par des ";"
on importe le csv dans une nouvelle table, dont on choisit le nom
la 1ère ligne du csv contient les identifiants des colonnes, donc idéalement ils apparaissent comme les noms des champs de la nouvelle table.

je souhaite automatiser ca en VBA sous Excel.

pour le moment, je suis parti sur ça : (mais ça ne marche pas du tout :-(  )

'un getopenfilename pour sélectionner le fichier csv qu'on souhaite traiter:
NomFichier = Application.GetOpenFileName(filefilter:=("Fichier texte (*.csv),*.csv"), Title:="Ouvrir un fichier")

'j'ai declare NomFichier comme variant

'puis, à priori la solution est d'utiliser un transferspreadsheet :

docmd.transferspreadsheet acImport, acspreadsheettypeexcel9, "maTable", "maBdD", True, "A1:B10"

aurais tu des idées jrivet ?? car je tourne un peu en rond, je vois pas comment faire; mon transferspreadsheet ne marche pas (j'ai une erreur "object required")
0
outofbusiness Messages postés 36 Date d'inscription dimanche 2 février 2003 Statut Membre Dernière intervention 4 juin 2009
9 mai 2007 à 15:31
pour etre très clair, ce que je souhaite faire en VBA, on le fait comme ça par les menus :

sous MSAccess :
file>get external data>import
'on sélectionne alors le fichier csv à importer; les champs étant délimités par des ";"
on importe le csv dans une nouvelle table, dont on choisit le nom
la 1ère ligne du csv contient les identifiants des colonnes, donc idéalement ils apparaissent comme les noms des champs de la nouvelle table.

je souhaite automatiser ca en VBA sous Excel.

pour le moment, je suis parti sur ça : (mais ça ne marche pas du tout :-(  )

'un getopenfilename pour sélectionner le fichier csv qu'on souhaite traiter:
NomFichier = Application.GetOpenFileName(filefilter:=("Fichier texte (*.csv),*.csv"), Title:="Ouvrir un fichier")

'j'ai declare NomFichier comme variant

'puis, à priori la solution est d'utiliser un transferspreadsheet :

docmd.transferspreadsheet acImport, acspreadsheettypeexcel9, "maTable", "maBdD", True, "A1:B10"

aurais tu des idées jrivet ?? car je tourne un peu en rond, je vois pas comment faire; mon transferspreadsheet ne marche pas (j'ai une erreur "object required")
0
annyong Messages postés 38 Date d'inscription lundi 23 avril 2007 Statut Membre Dernière intervention 25 février 2015
9 mai 2007 à 17:04
alors à priori ce docmd transferspreadsheet n'est que pour des macros access
0

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

Posez votre question
outofbusiness Messages postés 36 Date d'inscription dimanche 2 février 2003 Statut Membre Dernière intervention 4 juin 2009
9 mai 2007 à 18:13
Pouvez vous me dire également comment on utilise le "DoCmd", car je comprends vraiment plus.
lorsqu'il apparait dans le code, j'ai un message d'erreur au niveau du "DoCmd" : "variable not defined"
"DoCmd" n'est pas une variable quand même??

si j'ote le option explicit (je tente diverses possibilités), j'ai un autre message d'erreur "object required"
0
Rejoignez-nous