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 :

D'Excel vers Access (VBA)


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite Avatar de Alex020181
    Homme Profil pro
    Prestataire informatique développeur d'application Excel, Access, VBA
    Inscrit en
    Juin 2012
    Messages
    601
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Prestataire informatique développeur d'application Excel, Access, VBA

    Informations forums :
    Inscription : Juin 2012
    Messages : 601
    Par défaut D'Excel vers Access (VBA)
    Bonjour,

    J'ai besoin de vos lumières.

    Je précise que j'utilise Access 2010.

    Je dois importer cycliquement un fichier Excel contenant 20 onglets dans un fichier Access (1 table (déjà existante) par onglet) et il n'y a pas les en-têtes de colonnes.

    Je ne trouve pas comment le faire proprement par VBA. Je me casse les dents. J'utilise souvent "DoCmd.TransferSpreadsheet acImport" pour importer un fichier Excel avec 1 seul onglet mais je n'arrive pas à l'adapter à mon nouveau cas. C'est comme si "TransferSpreadsheet" ne pouvait pas gérer les classeurs à onglets.

    Je sais faire des boucles alors je pourrais me contenter d'un exemple avec un seul onglet (ou même un mot clé).

    Par exemple l'onglet "catalogue" va dans ma table "catalogue".

    J'avoue que je sèche et que cela m'exaspère.

    Help please.

    Qui sera mon sauveur ?

  2. #2
    Membre émérite
    Homme Profil pro
    Ingénieur Pilotage
    Inscrit en
    Avril 2009
    Messages
    405
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur Pilotage
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2009
    Messages : 405
    Par défaut
    Bonjour,

    Quelques idées à la va vite mais je ne sais pas si elles sont intéressantes ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Application.DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, nomtable, chemin, False, nomfeuille
    Si tu veux faire une boucle plusieurs possibilités :
    - nommer tes feuilles de cette manière : feuille1 , feuille2 , feuille3
    - Utiliser une boucle du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    For Each Sheet In ActiveWorkbook.Sheets
    Application.DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, nomtable, chemin, False, ActiveSheet.Name
    Next

    Au pire , faudrait il utiliser Automation ?

    Good luck

    Rom

  3. #3
    Membre émérite Avatar de Alex020181
    Homme Profil pro
    Prestataire informatique développeur d'application Excel, Access, VBA
    Inscrit en
    Juin 2012
    Messages
    601
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Prestataire informatique développeur d'application Excel, Access, VBA

    Informations forums :
    Inscription : Juin 2012
    Messages : 601
    Par défaut Merci
    Bonjour,

    Merci pour ta réponse. J'ai déjà essayé ta première proposition; en vain.

    Je me suis débrouillé en référençant Excel et en ouvrant le classeur pour "lire" directement les cellules. Je ne trouve pas ça très propre mais tant pis.

    C'est quand même bizarre qu'un fichier texte ou Excel (avec un seul onglet) puisse être importé avec une seule ligne de code mais qu'il faille utiliser l'automation si le fichier Exel en question à plusieurs onglets...

    Je n'ai peut-être pas trouvé la meilleure solution. Je reste à l'écoute.

  4. #4
    Membre chevronné Avatar de ypicot
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    412
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 412
    Par défaut
    La logique de la chose, c'est : 1 onglet = 1 table

    Si tu sors de ce paradigme (et c'est le cas pour toi, puisque "plusieurs onglets = une table", il faut tripatouiller en VBA).

    Si lire cellule par cellule pose pb, tu peux utiliser la méthode suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    pour chacun des onglets
      importer dans une table tampon
    suivant
    copier la table tampon dans la table définitive
    Yvan

    edit : c'est en fait la solution que te proposais lelensois...

  5. #5
    Membre émérite Avatar de Alex020181
    Homme Profil pro
    Prestataire informatique développeur d'application Excel, Access, VBA
    Inscrit en
    Juin 2012
    Messages
    601
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Prestataire informatique développeur d'application Excel, Access, VBA

    Informations forums :
    Inscription : Juin 2012
    Messages : 601
    Par défaut Merci
    Bonjour,

    C'est effectivement ce que j'ai fait.

    J'ai également inclus des contrôles pour passer de mes "tables tampon" vers mes tables définitives (contrôle de format notamment).

    Merci

Discussions similaires

  1. VBA Export Excel vers Access
    Par rabihm81 dans le forum VBA Access
    Réponses: 2
    Dernier message: 26/05/2009, 13h54
  2. copier une feuille excel vers un autre fichier excel en access VBA
    Par acbdev dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 19/03/2008, 09h32
  3. Transférer un tableau excel vers access avec VBA (bug)
    Par beegees dans le forum VBA Access
    Réponses: 2
    Dernier message: 18/07/2007, 09h28
  4. [VBA-E]Exporter des données d'Excel vers Access
    Par Mut dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 03/06/2006, 15h57
  5. Récupérer une sheets dans excel vers access sous vba
    Par odbee dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 22/10/2005, 00h30

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