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

Access Discussion :

Importation de fichiers Excel Vers Access via macro


Sujet :

Access

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2015
    Messages : 8
    Points : 5
    Points
    5
    Par défaut Importation de fichiers Excel Vers Access via macro
    Bonjour,

    Je recherche une solution à mon problème qui est le suivant :

    J'ai mon modèle relationnel qui est établit sous Access avec les différentes tables et leurs instances mais je souhaite charger automatiquement depuis une macro sur excel certains fichiers que je reçois régulièrement. Sachant que ces fichiers sont du même format, mon idée est de lancer cette macro qui importerait certains classeurs du fichier excel en question et après par des requêtes dans ma base de données cette nouvelle table importée alimenterait toute ma base de données.

    J'ai déjà réussi à écrire les requêtes SQL pour alimenter ma BDD mais je ne vois pas du tout comment faire pour importer certaines colonnes d'un fichier excel avec le lancement d'une macro.

    Merci d'avance pour votre aide, et je suis prêt à répondre à vos questions si vous le souhaitez

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Bonjour,

    Si tu es prêt à passer par une table intermédiaire avant d'alimenter des tables définitives, je te conseille de passer par la méthode Docmd.TransferspreadSheet pour alimenter ta table temporaire.

    Cordialement,
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2015
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Bonjour madefemere,

    Merci pour ta réponse rapide.

    Voici le bout de code que j'ai afin de commencé ma macro
    sub export()

    DoCmd.TransferSpreadsheet transfertype:=acImport, SpreadsheetType:=9, _
    tablename:="Table_Chargement", Filename:="chemin/Fichier_A_Charger.xls", _
    Hasfieldnames:=True , Range:="Feuill1!A:F"

    end sub

    De plus avec cette méthode je ne vois pas avec quelle instruction je vais choisir la base de données.accdb dans laquelle je vais charger ma nouvelle table intermédiaire....

    De plus si je veux sélectionner certaines colonnes dans mon fichier_a_charger.xls et non pas les colonnes A à F. comment cela est-il possible ?

    Enfin, je sais qu'il faut activer certaines références afin d'utiliser la fonction Transferspreadsheet mais je n'arrive pas à trouver quelle(s) référence(s) il faut utiliser ...

    Cdlt

  4. #4
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Re-,

    Est-ce que tu as utilisé pour savoir ce que fait exactement la méthode TransferSpreadsheet ?

    Les arguments sont de type texte donc on peut créer des variables en argument que tu peux modifier selon ce que tu veux, du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    LeFichierExcel = "................."
    laZone = "......"
    Docmd.TransferSpreadSheet acImport, acSpreadsheetTypeExcel9,"Table_Inter", LefichierExcel,True,LaZone
    Tu peux utiliser la fonction DialogBox ou une fonction OuvrirFichier dont tu trouveras la source sur le site pour déterminer le fichier Excel à importer.
    De même un InputBox doit te permettre de définir la zone à récupérer.

    Cordialement,
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2015
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Oui, je me suis effectivement renseigné sur la méthode en question.

    Je n'arrive pas à compiler car j'ai le message d'erreur suivant qui s'affiche :

    "Erreur d'éxécution '2046' :

    La commande ou l'action "TransférerFeuilleCalcul" n'est pas disponible pour l'instant.
    "

    Enfin, cette macro doit elle être exécutée depuis excel ou depuis access ?

    Car si elle est exécutée depuis excel, je ne vois pas où est l'instruction pour commander le fait que "Table_Inter" doit être chargée dans ma_base_de_donnee.accdb

    Merci d'avance

  6. #6
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Tu es sous Excel actuellement ou sous Access ???
    Normalement c'est un code VBA qui est lancé sous Access et permet d'importer un fichier Excel dans Access (Comme indiqué dans ton titre )
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2015
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par madefemere Voir le message
    Tu es sous Excel actuellement ou sous Access ???
    En fait, je travaille conjointement sur les deux c'est à dire que j'ai mes données sur excel et ma base de données sous access.

    C'est là où j'ai du mal m'exprimer : Le but étant de ne pas toucher à la base access. L'utilisateur charge les fichiers excel dans access via une macro sous excel. Donc la macro doit être dans excel...
    Faut-il passer par la méthode DAO ? Avec les recordset etc etc

    L'utilisation finale est qu'après chargement des fichiers dans access, grâce à une interface sous excel il choisit les données qu'il veut analyser.

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2015
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Re bonjour,

    je cherche à utiliser la méthode transferSpreadsheet avec l'adresse du fichier excel qui est stocké dans une variable sous excel et non "en dur" ...

    Savez-vous s'il est possible de communiquer cette variable depuis excel dans access ?

    Je cherche à faire cela car le fichier d'import peut changer de répertoire, donc le fait de récupérer son chemin sous excel dans une variable m'aide considérablement mais je cherche à exporter cette variable dans Access

    Merci d'avance

  9. #9
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Bonjour,

    C'est possible d'utiliser un variable comme argument de la fonction TransferSpreadSheet, mais.... si tu déplaces ton fichier Excel, comment le fichier Access reconnaitra son emplacement ?
    En fait, ce qu'il faut que tu fasses, d'après ce que j'ai compris, c'est ouvrir la fenêtre de choix des fichiers pour choisir le fichier Excel à traiter et récupérer son chemin et son nom et passer cette valeur en argument à la fonction.

    Cordialement,
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

Discussions similaires

  1. Importation fichier excel vers access
    Par mbokmahop dans le forum VBA Access
    Réponses: 17
    Dernier message: 05/08/2018, 16h33
  2. Importation du fichier Excel vers Access
    Par Glenlaporte dans le forum Macros Access
    Réponses: 2
    Dernier message: 18/12/2012, 05h59
  3. Réponses: 2
    Dernier message: 01/06/2011, 12h14
  4. [AC-2000] VBA, importation particulière fichier Excel vers une table access
    Par ElCyril dans le forum VBA Access
    Réponses: 2
    Dernier message: 08/12/2010, 01h05
  5. Importation d'un fichier excel vers access
    Par zinini dans le forum Access
    Réponses: 2
    Dernier message: 07/07/2006, 12h42

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