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 :

Concatenation de fichiers XLS en VBA Access [AC-2002]


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 104
    Par défaut Concatenation de fichiers XLS en VBA Access
    Bonjour,

    Je cherche a effectuer une concat de 5 fichiers Excel en 1.
    Les 5 fichiers ont le même format.

    Je sais que je pourai passer par des export CSV avec fichier1+fichier2+fichi..., mais j'espère éviter encore un changement de format supplémentaire.

    Merci à vous.

  2. #2
    Membre très actif
    Profil pro
    Inscrit en
    Février 2009
    Messages
    278
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Février 2009
    Messages : 278
    Par défaut
    Je sais pas si c'est la meilleur solution masi tu peux récupérer le contenu de chaque fichier dans un tableau puis recopier le tableau dans un nouveau fichier .xls

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 104
    Par défaut
    En fait, j'aimerai bien ce format la

    Nom du fichier 1
    Données du fichier 1

    Nom du fichier 2
    Données du fichier 2

    Etc...

  4. #4
    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 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    salut,
    tu souhaites avoir un fichier avec plusieurs feuilles ou tout dans une seule feuille ?
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  5. #5
    Membre éclairé
    Homme Profil pro
    Manager de Projet SAP
    Inscrit en
    Mars 2009
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : Pologne

    Informations professionnelles :
    Activité : Manager de Projet SAP
    Secteur : Distribution

    Informations forums :
    Inscription : Mars 2009
    Messages : 210
    Par défaut
    Bonjour.

    Tout d'abord lister dans une table Access les noms de fichiers excel contenant les donnees a copier

    Dans VBA :

    1) connection a Excel

    Pour chaque enregistrement de la table Access contenant les noms de fichier :

    1) Mettre en memoire le nom du fichier a traiter selectionne dans la table Access

    2) Ouverture du fichier excel correspondant au nom fichier en memoire

    3) dans le fichier conso, coller les donnees du fichier excel d'origine, puis copier dans la colonne appropriee le nom de fichier en memoire sur toutes les lignes qui viennent d'etre rajoutees

    Puis passer a l'enregistrement suivant de la table Access.

    Avec des boucles, on ne programme qu'une seule fois les operations, le programme se debrouille pour relancer la copie des donnees tant qu'il n'a pas traite le dernier enregistrement.

    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
     
    dim nomfichier as string
    Set tb=currentdb.openrecordset("nomtablelistantfichiers",dbopendynaset)
    if tb.eof=true then
    else
        'ouverture session Excel
        'ouverture du fichier conso
        tb.movefirst
        do while tb.eof=false
             nomfichier=tb!nomchamp
             'ouverture du fichier excel avec, au lieu du nom fichier en dure la       
             'valeur  nomfichier ex
             .........."C:\" & nomfichier
             'copie des donnees dans le fichier conso
             'copie du nom de fichier dans la colonne concernee
             selection.value = nomfichier
             'fermeture fichier excel contenant les donnees d'origine
             tb.movenext
        loop
    end if
    tb.close
    Ca devrait fonctionner.

    Peut etre y a t il plus simple.

    Cdlt

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 104
    Par défaut
    Citation Envoyé par jpcheck Voir le message
    salut,
    tu souhaites avoir un fichier avec plusieurs feuilles ou tout dans une seule feuille ?
    jpcheck bonjour,

    Tous les fichiers sur la même page ce serait déjà très bien... Merci


    Heu...jj4822 ...
    Manque pas des ligne dans ton code ?
    Ou alors je comprend pas tout ...?

    Merci par avance

  7. #7
    Membre éclairé
    Homme Profil pro
    Manager de Projet SAP
    Inscrit en
    Mars 2009
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : Pologne

    Informations professionnelles :
    Activité : Manager de Projet SAP
    Secteur : Distribution

    Informations forums :
    Inscription : Mars 2009
    Messages : 210
    Par défaut
    Bonjour.

    Je n'ai pas mis toutes les lignes concernant la connection a une session excel, l'ouverture d'un fichier excel et la copie de donnees d'un fichier excel a un autre fichier excel.

    Pour ouvrir une session excel on peut utiliser :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Set Xl = CreateObject("excel.application")
    Pour fermer la session excel :
    Pour ouvrir un fichier, faire des copies de donnees il suffit de lancer un enregistrement de macro dans excel et de faire les operations (ouverture fichier, selection de champs, copie et collage etc ) manuellement.
    On copie ensuite l'ensemble des operations dans le module VBA Access dans la boucle.
    Ensuite, dans chaque ligne copiees du VBA Excel au VBA Access, il faut rajouter XL. sur chaque ligne.

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    'ouverture d'un fichier
    Xl.Workbooks.Open "......xls"
    'enregistrement fichier excel
    Xl.ActiveWorkbook.Save
    'selection d'une cellule
    xl.activecell.select
    Il ne faut pas oublier tout ce qui est selection de feuille, selection de la 1ere ligne vide dans la feuille de destination des donnees si l'on veut copier toutes les donnees dans une seule feuille etc.

    Il ne faut pas oublier de rajouter les references a :
    Microsoft DAO .....
    Microsoft Excel ...Library

    Sur le site, il existe surement des totoriels pour aller plus loin dans la gestion des fichiers excel et autres besoins.

    Il y a peut etre plus simple que ce que je propose.

    Cdlt

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

Discussions similaires

  1. Ouvrir un fichier word avec VBA Access
    Par alainb dans le forum VBA Access
    Réponses: 3
    Dernier message: 26/10/2007, 21h57
  2. Tracé graphique sur fichier excel depuis vba access
    Par kdestine dans le forum VBA Access
    Réponses: 0
    Dernier message: 26/09/2007, 12h37
  3. créer un fichier excell avec VBA(access)
    Par JCH dans le forum Access
    Réponses: 1
    Dernier message: 19/09/2006, 19h07
  4. Enregistrer fichier xls - pilotage depuis access
    Par Celia1303 dans le forum Access
    Réponses: 5
    Dernier message: 15/11/2005, 14h15
  5. Mise en forme fichier xls à partir d'access
    Par Bigdeal dans le forum VBA Access
    Réponses: 2
    Dernier message: 27/09/2005, 15h47

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