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 :

Access et Excel: importer un classeur complet


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2008
    Messages
    24
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2008
    Messages : 24
    Points : 14
    Points
    14
    Par défaut Access et Excel: importer un classeur complet
    Salut la compagnie,

    Voulant creer une routine de mise a jour pour ma base de donnees Access, j'aurai besoin de programmer sous vb l'importation d'une feuille quelconque (et pas uniquement la premiere) Excel

    J'ai bien essayer d'utiliser ce type de code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.TransferSpreadsheet acImport, 8, "A", (Update), True, ""
    Mais cela ne me permet d'importer que la premiere feuille de mon classeur alors qu'en fait il faudrait que j'importe toutes les feuilles qu'il contient.

    Le mieux serait meme que je puisse toutes les inserer dans une seul et meme table mais si j'arrivais deja c creer autant de table que j'ai de feuilles je serais content!

    Merci d'avance!

    PS: j'ai effectuer un max de recherche avant de poster cette question mais je n'ai rien trouve...

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 642
    Points : 34 350
    Points
    34 350
    Par défaut
    bonjour damfury,
    bienvenue sur DVP

    en lisant une des infos de la
    http://access.developpez.com/faq
    il est écrit qu'on peut spécifier les zones à importer dans Access :
    http://access.developpez.com/faq/?pa...l#ImpFichExcel

    Mon petit doigt me dit que si tu passes par une collection de page au préalable, tu devrais pouvoir fair une boucle d'import avec toutes les pages

    dans l'idée ca donnerait ceci (non vérifié mais au debug près ):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Dim xlWbk As Worbook
    Dim col As collection
    Dim tmpWsh as WorkSheet
    Dim i As integer
     
    ' avec attribution préalable de xlWbk à ton classeur en question
    For Each tmpWsh In xlWbk.WorSheets
          Col.Add tmpWsh.Name
    Next
     
    For i = 0 to Ubound(col)
    DoCmd.TransferSpreadsheet acImport, 8, "T_" & col(i),"C:\Fichier.xls", True, "A1:C12" 
    Next i

  3. #3
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2008
    Messages
    24
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2008
    Messages : 24
    Points : 14
    Points
    14
    Par défaut
    Merci beaucoup pour ta reponse!

    Qu'est-ce que tu entends par "attribution préalable de xlWbk à ton classeur en question"???

    Desole je suis assez novice en vb!!

    D'autant plus que je recupere le chemin de mon classeur par l'intermediaire d'une variable appelee "update".

  4. #4
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Bonjour.

    C'est dans l'argument 'Etendue' que tu peux préciser le nom de la feuille dans le classeur.

    Bon courage,

    PGZ

  5. #5
    Membre chevronné
    Inscrit en
    Août 2006
    Messages
    1 588
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 1 588
    Points : 2 178
    Points
    2 178
    Par défaut
    True pour prendre en compte les noms de colonnes
    si ces noms sont identiques, on peut importer dans une même table
    Le nom de la feuille est suivi de !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "NomTable1", "C:\dossier\fichierexcel.xls", True, "Feuil1!"
    DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "NomTable2", "C:\dossier\fichierexcel.xls", True, "Feuil2!"

  6. #6
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2008
    Messages
    24
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2008
    Messages : 24
    Points : 14
    Points
    14
    Par défaut
    Merci a tous pour vos reponses!

    Bon pour que cela fonctionne avec une variable qui contient le chemin du fichier c'etait pas complique.

    Ca donne ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DoCmd.TransferSpreadsheet acImport, 8, "A", (Update), True, "A!"
    DoCmd.TransferSpreadsheet acImport, 8, "B-C", (Update), True, "B-C!"
    Maintenant il va me faloir mettre en forme les tables obtenues car les premieres lignes sont inutiles, certaines colonnes le sont aussi et les noms de champs ne sont pas les bons.

    Donc je vais essayer de chercher par moi meme mais si vous avez quelques indices a me laisser concernant la mise en forme des bases grace a des instructions VB ne vous genez pas!!!!!

    Merci a tous

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2003] Automatisation d'importation des classeurs Excel dans Access
    Par lajka dans le forum VBA Access
    Réponses: 0
    Dernier message: 18/06/2015, 16h29
  2. Réponses: 4
    Dernier message: 22/04/2014, 13h11
  3. Rendre une macro accessible de n'importe quel classeur
    Par nsqualli dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 14/01/2009, 15h28
  4. importer un classeur excel en formulaire sous access
    Par tobisko dans le forum Access
    Réponses: 2
    Dernier message: 28/10/2006, 19h41
  5. [Excel] Importation/Exportation vers Access
    Par shub dans le forum Access
    Réponses: 11
    Dernier message: 15/11/2005, 11h07

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