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 :

Transférer une feuille Excel automatiquement vers table Access déjà créée


Sujet :

VBA Access

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    460
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 460
    Points : 71
    Points
    71
    Par défaut Transférer une feuille Excel automatiquement vers table Access déjà créée
    Bonjour j’aurai besoin d’aide :
    pour transférer un feuille excel automatiquement vers ma table access avec VBA. Les champs de ma table access sont déjà crées.
    1ère solution : renommer mes champs excel automatiquement depuis access avant l'import car manuellement (caractère trop long et pas facile à gérer car plus de 50 champs soit 50 colonnes)
    Point bloquant : mon code VBA génère un message d’erreur et bloque la procédure pour renommer mes champs de mon fichier excel avant import(voir ci-dessous) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    Sub Init()
     
    Dim xlApp As Excel.Application
    Dim xlSheet As Excel.Worksheet
    Dim xlBook As Excel.Workbook
    Set xlApp = CreateObject("Excel.Application")
    Set xlBook = xlApp.Workbooks.Open(CurrentProject.Path & "\export_10.xls")
    Set xlSheet = xlBook.Worksheets("ExportAAP")
    With xlSheet
     
    .Cells.Replace What:="NUM" & Chr(10) & "Numéro dos", Replacement:="NUM", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False   
       .Cells.Replace What:="NUM2" & Chr(10) & "Numéro réf", Replacement:="NUM2", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False   
     
       End With
     
    xlApp.Quit
    Set xlSheet = Nothing
    Set xlBook = Nothing
    Set xlApp = Nothing
    End Sub
    2nd solution : comment importer depuis la ligne 2 du fichier excel vers ma table déjà existante ? colonne 1 excel champ 1 transfert vers champs 1 access etc…
    Merci pour votre aide

  2. #2
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 416
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 416
    Points : 16 259
    Points
    16 259
    Par défaut
    Bonjour

    Ne serait-il pas plus simple de lier ta feuille Excel et d'en récupérer les enregistrements par requête ajout ?
    Chris
    PowerQuery existe depuis plus de 13 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    460
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 460
    Points : 71
    Points
    71
    Par défaut
    y-a-t-il un exemple ? l'idée est de transférer un export automatiquement une ou plusireurs feuilles excel

  4. #4
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 416
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 416
    Points : 16 259
    Points
    16 259
    Par défaut
    Bonjour

    Regarde déjà manuellement :
    données externes, lier une table et tu indiques ton fichier Excel et l'onglet souhaité
    puis requête d'ajout de cette table liée vers la table cible où tu indiques la correspondance des champs : quelle colonne Excel alimente quel champ de la table.

    Après, pour plusieurs tables, il suffit de chaîner tes requêtes dans une macro pour automatiser : rien de plus si le classeur Excel ne change pas de nom ou de place.
    Chris
    PowerQuery existe depuis plus de 13 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    460
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 460
    Points : 71
    Points
    71
    Par défaut
    re bonjour merci pour l'aiguillage, j'ai essayé mais celà fonctionne pas très bien manuellement, pas très habituer à cette methode, je souhaiterais si possible trouver la solution via VBA, au lieu de renommer les champs qui figure dans la 1 ère solution cité -dessus qui nécessite d 'enregistrer à chaque fois le fichier excel ect.... trop long . Je souhaterais tout simplement faire un import à partir de de la ligne 2 du fichier excel : c'est à dire importer 5 colonnes sans l'entête à partir de la ligne 2 , soit de A2: E11000 vers les 5 champs de ma table access : [champ 1] à [champ 5] tout simplement, comment transférer ? colonne1 vers champ 1 etc..
    si vous pouvez m'aiguiller merci d'avance

  6. #6
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 416
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 416
    Points : 16 259
    Points
    16 259
    Par défaut
    Bonjour

    Il n'y a normalement pas besoin de renommer quoi que ce soit dans le fichier excel : c'est la requête ajout qui permet de préciser que telle colonne Excel correspond à tel champ Access d'un simple clic.
    Chris
    PowerQuery existe depuis plus de 13 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

Discussions similaires

  1. Réponses: 1
    Dernier message: 26/10/2010, 15h25
  2. [XL-2003] Mise à jour d'une feuille excel automatiquement
    Par hhammah dans le forum Excel
    Réponses: 4
    Dernier message: 16/07/2010, 16h24
  3. Réponses: 10
    Dernier message: 28/10/2008, 15h41
  4. problème pour lire une feuille excel a partir d'Access
    Par h_adil dans le forum VBA Access
    Réponses: 1
    Dernier message: 17/07/2008, 23h44
  5. Intégrer une feuille Excel dans mon formulaire Access
    Par supertoms dans le forum VBA Access
    Réponses: 0
    Dernier message: 13/05/2008, 21h37

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