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 :

importer des données excel en VBA à partir de la ligne 2 d’une colonne excel vers un [champ] table access


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    460
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 460
    Par défaut importer des données excel en VBA à partir de la ligne 2 d’une colonne excel vers un [champ] table access
    Bonjour, j’aimerai savoir comment importer des données en VBA à partir de la ligne 2 d’une colonne excel vers un [champ] d’une table access déjà existant :
    EXEMPLE : dire en VBA de la ligne 2 colonne A --> excel A2 : A10000 VERS Le champ access [champs 1]
    dire en VBA de la ligne 2 colonne B --> excel B2 : B10000 VERS Le champ access [champs 2] etc.. pour 50 colonnes
    j'ai essayé avec la commande ci-dessous cela fonctionne presque :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12, strTable, strChemin, blnNoms, strFeuille & "!A2:A1000"  ‘ le pb ici access
    importe le champ A1 et la plage A2 à A10000[/code]Comment faire uniquement la délimitation et le transfert vers un champ existant sans importer la ligne 1 sans les champs du fichier excel car les champs sont déjà existants, merci pour votre aide

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    178
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 178
    Par défaut
    Bonjour,

    Je ne maîtrise pas trés bien les imports depuis Excel mais si tu ne trouves pas la réponse directe ceci pourrait être un plan "B" :

    Cas 1 : attacher la feuille excel et extraire par requete les info qui t'interesse pour mettre à jour ta table

    Cas 2 : importer la feuille selon ton code mais en donnant un nom de table intermédiaire. Ensuite utilise la table intermédiaire, ainsi crée, pour mettre à jour la table principale (c'est tordu mais ça peut marcher)

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

    Informations forums :
    Inscription : Janvier 2008
    Messages : 460
    Par défaut
    merci pour le coup de main , mais comment faire avec le cas n 2 merci

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    178
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 178
    Par défaut
    Bonjour,

    L'exemple ci dessous est un extrait de l'aide en ligne ACCESS

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    'Cet exemple importe les données d'une plage spécifiée provenant du fichier Newemps.wk3 Lotus dans la table Employees Microsoft Access. Il utilise la première ligne de la feuille de calcul pour les noms des champs
     
    DoCmd.TransferSpreadsheet acImport, 3, "Employees","C:\Lotus\Newemps.wk3", True, "A1:G12"
    Pour le cas 2 "Employees" (c'est le strTable de ton exemple)pourrait être une table "MaTableIntermediaire" que tu crées au préalable et que tu vides avant de faire l'importation.

  5. #5
    Membre éprouvé
    Homme Profil pro
    Activités informatiques diverses
    Inscrit en
    Février 2007
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Activités informatiques diverses
    Secteur : Service public

    Informations forums :
    Inscription : Février 2007
    Messages : 153
    Par défaut
    Bonjour.
    A mon avis, le cas N°2 rajoute une complexité inutile.
    Le simple fait d'attacher le fichier Excel fait que l'on peut le traiter comme une table et en extraire les données voulues avec une ou plusieurs requêtes.
    Je suggère aussi une approche automation ou l'on ouvre le fichier excel avant de recopier une à une les cellules voulues
    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
      Dim xlApp As Excel.Application
      Dim xlSheet As Excel.Worksheet
      Dim xlBook As Excel.Workbook
      Dim ValCel As String
      Dim i As Integer
     
      'Ouvrir Excel
      Set xlApp = CreateObject("Excel.Application")
     
      'Rendre Excel visible (non obligatoire mais utile pour le déboguage) - Fonctionne
      xlApp.Visible = True
     
      'Ouvrir le classeur - Fonctionne
      Set xlBook = xlApp.Workbooks.Open(Chemin & Fichier)
     
      'Sélectionner la feuille "Test"
       Set xlSheet = xlBook.Sheets("Test")
     
      'Afficher la feuille "Test" (non obligatoire mais utile pour le déboguage)
      xlApp.Sheets("Test").Select
     
      For i = 2 To 10 'Mettre ici une variable correspondant au nombre de cellules à copier
        ValCel = xlSheet.Range("A" & Right$(Str$(i), Len(Str$(i)) - 1)).Value
        'Inserer ici le code pour l'ajout de la valeur dans la table
      Next i
     
      'Fermer les objets
      xlApp.Quit
      Set xlSheet = Nothing
      Set xlBook = Nothing
      Set xlApp = Nothing
    Cordialement, Dominique.

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

    Informations forums :
    Inscription : Janvier 2008
    Messages : 460
    Par défaut
    merci

  7. #7
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 403
    Par défaut
    Bonjour,

    il y a également comme toujours des infos à glaner dans la FAQ, par exemple ici

Discussions similaires

  1. Importer des données à partir d'un fichier excel fermé
    Par yassinefeki dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 28/06/2019, 10h54
  2. Extraire des données SAP en VBA à partir d'Excel
    Par Mike Twain dans le forum Général VBA
    Réponses: 1
    Dernier message: 06/02/2011, 21h22
  3. Réponses: 0
    Dernier message: 18/08/2010, 12h43
  4. Réponses: 1
    Dernier message: 27/01/2008, 06h23
  5. [VBA-E]Importer des données de fichiers excel fermés
    Par bart64 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 20/04/2006, 11h35

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