IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

importation de plusieurs fichiers excel dans Access


Sujet :

VBA Access

  1. #1
    Membre du Club
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2008
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2008
    Messages : 61
    Points : 50
    Points
    50
    Par défaut importation de plusieurs fichiers excel dans Access
    Bonjour,

    Comment importer plusieurs fichiers excel qui sont dans le même dossier, et les intégrés dans une table Access.

    Les fichiers Excel sont tous crées de la même façon.

    Ces fichiers Excel changent de nom d'un moi à l'autre, donc je voudrai un code VBA qui gère tous les fichiers sans préciser les noms des fichiers excel.

    Je vous remercie d'avance.

    Cdr,

  2. #2
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 335
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 335
    Points : 19 573
    Points
    19 573
    Billets dans le blog
    65
    Par défaut
    Salut,

    Pour lister les fichiers contenu dans 1 répertoire tu as ceci.

    Après pour le reste ça manque de précisions...
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  3. #3
    Membre du Club
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2008
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2008
    Messages : 61
    Points : 50
    Points
    50
    Par défaut
    Je vous remercie pour votre réponse.

    En effet pour être plus précis, j'ai à la fin de chaque mois, 5 fichiers Excel ".xls", et je voudrais intéger tous ces fichiers Excel dans une base Access.

    Ces fichiers sont tous dans un seul dossier.

    A la fin de chque mois, je remplace mes 5 fichiers par les nouveaux,et du coup la mis à jour des données dans la base Access.

    Voila voila !!

  4. #4
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 335
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 335
    Points : 19 573
    Points
    19 573
    Billets dans le blog
    65
    Par défaut
    Salut,

    ...et je voudrais intéger tous ces fichiers Excel dans une base Access.
    Souhaites-tu importer une feuille Excel de chacun des ces fichiers dans des tables ?

    Dans ce cas une idée serait pour les 5 fichiers contenus dans ton répertoire d'utiliser la commande TransferSpreadsheet...

    Cette commande va ajouter à la table les données contenu dans ta feuille Excel...
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  5. #5
    Membre du Club
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2008
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2008
    Messages : 61
    Points : 50
    Points
    50
    Par défaut
    Oui, chaque classeurs contient une seule feuille.

    Mais le problème, c'est que, les classeurs n'ont pas le même nom de feuille, et le nom des classeurs et de feuilles changent d'un moi à l'autre.

    En + je dois faire une sélection de colonne Excel à insérer dans la base, puisque j'ai 10 colonnes en Excel et que 5 en base Access.

    Merci

  6. #6
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 335
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 335
    Points : 19 573
    Points
    19 573
    Billets dans le blog
    65
    Par défaut
    Re,

    Mais le problème, c'est que, les classeurs n'ont pas le même nom de feuille, et le nom des classeurs et de feuilles changent d'un moi à l'autre.
    Dans ce cas comment vas-tu faire la relation entre 1 classeur (1 feuille) et 1 table.

    Peux-tu donner des exemples de noms de fichiers xls... ce sera plus parlant ?
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  7. #7
    Membre du Club
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2008
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2008
    Messages : 61
    Points : 50
    Points
    50
    Par défaut
    Les noms des classeurs de ce mois ci :
    1)- "ABC-2010-06-04.xls"
    2)- "ABCD-2010-06-04.xls"
    ...

    Et le mois prochain ca serait :
    1)- "ABC-2010-07-04.xls"
    2)- "ABCD-2010-07-04.xls"

    ..


    pour les noms de feuilles :
    1)- export-a187236-11103-20100604-1
    2)- export-a187236-11096-20100604-1
    ....

    donc les noms des classeurs et feuilles changent d'un mois à l'autre puisque c'est un import ".xls" d'un logiciel de planification de projet.

  8. #8
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 335
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 335
    Points : 19 573
    Points
    19 573
    Billets dans le blog
    65
    Par défaut
    Salut,

    Pour connaître le nom des classeurs du mois:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    NomClasseur1= "DCT-" & Format(DateAdd("m",-1,Date()),"yyyy-mm") & "-04.xls"
    NomClasseur2 = "DIAM-PM-" & Format(DateAdd("m",-1,Date()),"yyyy-mm") & "-04.xls"
    et des feuilles :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    NomFeuille1 = "export-a187236-11103-" & Format(DateAdd("m",-1,Date()),"yyyymm") & "04-1"
    NomFeuille2 = "export-a187236-11096-" & Format(DateAdd("m",-1,Date()),"yyyymm") & "04-1"
    Pour le mois prochain il faut remplacer DateAdd("m",-1,Date()) par Date()...

    Je me base sur les noms que tu as donnés...


    A+
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  9. #9
    Membre actif
    Homme Profil pro
    Manager de Projet SAP
    Inscrit en
    Mars 2009
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Pologne

    Informations professionnelles :
    Activité : Manager de Projet SAP
    Secteur : Distribution

    Informations forums :
    Inscription : Mars 2009
    Messages : 210
    Points : 238
    Points
    238
    Par défaut
    Bonjour.

    Tout d'abord recuperer le nom des fichiers sur le repertoire
    Puis, pour chaque fichier trouve sur le repertoire, importer les donnees dans Access.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    'Declaration de la valeur répertoire
    dim répertoire as string
    'Recuperation de la liste des fichiers
    répertoire = Dir("C:\......\*.xls", vbDirectory)
    'On passe d'un fichier excel a l'autre
    Do While répertoire <> ""
    'import des donnees du fichier excel dans Access
          DoCmd.TransferSpreadsheet , acSpreadsheetTypeExcel8, "Ma_Table", répertoire, True
     
          répertoire = Dir
    Loop
    Dans la ligne "Docmd.Transfer..." :

    - "Ma_Table" : nom de la table ou je souhaite importer mes donnees excel
    - répertoire : nom du fichier excel recupere

    -Le mieux est de taper a nouveau manuellement le "docmd.transfer...." pour etre sur de choisir le bon format acSpreadsheetTypeExcel8 (version d'excel).

    - True si la 1ere ligne du fichier excel contient l'entete de colonne et False si la 1ere ligne est une ligne de donnees. Si on ne met rien, selon la doc sous Access, c'est considere comme avec la valeur False : 1ere ligne excel = ligne de donnees.

    Important : faire un test d'import automatique pour verifier si les nouvelles donnees ecrasent ou non les donnees precedentes.

    Ca devrait fonctionner.

    Cdlt.

Discussions similaires

  1. importer plusieurs fichiers excel dans access
    Par mimieloic dans le forum Access
    Réponses: 4
    Dernier message: 18/05/2015, 14h19
  2. [AC-2003] Importation d'un fichier excel dans Access avec traitement
    Par Mishe dans le forum VBA Access
    Réponses: 2
    Dernier message: 12/03/2013, 16h23
  3. import de plusieurs fichiers XML dans Access 2003
    Par frdek dans le forum Access
    Réponses: 7
    Dernier message: 09/08/2008, 19h39
  4. importation d'un fichier excel dans access
    Par nath-0-0 dans le forum Access
    Réponses: 7
    Dernier message: 05/09/2006, 09h23
  5. Réponses: 7
    Dernier message: 23/11/2005, 18h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo