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

Macros et VBA Excel Discussion :

Concaténer plusieurs fichiers dans un seul ?


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 51
    Par défaut Concaténer plusieurs fichiers dans un seul ?
    bonsoir à tous,

    j'ai quelques bases (on va dire ça en vba) mais insuffisantes visiblement ...
    j'ai plusieurs fichier .xls dans le répertoire c:\toto
    , nommés david1.xls, david2.xls et david3.xls, etc ... n fichiers disons.

    Chaque fichier a la même structure, c'est à dire une seule feuille nommée Feuill1, avec pour chacun certaines cellules de remplie : C1, D13, F14, etc ...
    je souhaiterai pouvoir concaténer l'ensemble de mes fichiers de telle manière à n'avoir qu'un seul fichier.

    Donc en clair, je souhaiterai avoir une ligne pour "résumer" chacun des fichiers.
    fichier global :
    ligne 1, cellule1=valeur(C1,david1.xls), , cellule2=valeur(D13,david1.xls),,,
    ligne 2, cellule1=valeur(C1,david2.xls), , cellule2=valeur(D13,david2.xls),,,

    Est-ce possible d'automatiser ça ?

    Merci pour votre aide

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Juin 2013
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur décisionnel
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2013
    Messages : 151
    Par défaut
    Bonsoir,
    Je ne peux répondre à ton problème ce soir car je suis sur un "Appel", incompatible pour excel avec "macro"
    J'ai du résoudre le même problème et je t'enverrai le code demain, du moins, une solution possible.

    A demain.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 51
    Par défaut
    merci de ta participation déjà

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 51
    Par défaut
    pour plus de renseignements, c'est comme si j'avais n questionnaires de remplis par n personnes, et que je souhaites tout mettre dans un seul fichier excel avec en ligne 2 par exemple, les réponse de la personne 2, etc ... C'est pas un copier coller de la feuille du questionnaire, c'est juste que je souhaite prendre les mêmes cases d'un questionnaire à un autre (cases C1, D13, etc.)
    Mon niveau de VBA est carrément rouillé à vrai dire ...

    en PJ : les deux fichiers et le fichier de synthèse tant désiré.

    up : j'ai essayé cela mais ça n'en veut pas visiblement, un truc plante ...

    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
    Private Sub CommandButton1_Click()
     
    Range("A1").Select 'sélectionner la cellule de début
    Chemin = "D:\checklist\"
    fichier = Dir(Chemin & "*.xls")
    Do While fichier <> ""
    Workbooks.Open Filename:=Chemin & fichier
    Set feuille = ActiveWorkbook.Sheets("Feuil2")
     
    ThisWorkbook.Activate
    ActiveCell.Value = feuille.Range("C3").Value
    ActiveCell.Offset(0, 1).Value = feuille.Range("C7").Value
    ActiveCell.Offset(0, 2).Value = feuille.Range("E5").Value
    ActiveCell.Offset(0, 3).Value = feuille.Range("E13").Value
    ActiveCell.Offset(0, 4).Value = feuille.Range("G24").Value
    ActiveCell.Offset(0, 5).Value = feuille.Range("E25").Value
     
    Windows(fichier).Close savechanges:=False
    ThisWorkbook.Activate
    Range("A65536").End(xlUp).Offset(1, 0).Select
    fichier = Dir ' Fichier suivant
    Loop
     
     
     
    End Sub

    merci
    Fichiers attachés Fichiers attachés

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Juin 2013
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur décisionnel
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2013
    Messages : 151
    Par défaut
    Bonjour,

    Comme promis, voici le code que j'ai utilisé pour récupérer des données dans plusieurs fichiers d'un même répertoire (ici, tous les fichiers d'extension ".xls") et les concaténer dans un seul.

    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
    32
    33
    34
    35
    36
    37
    38
    Sub Macro1()
     
    '
    Dim NomFichier As String, i As Long, DerLine As Long
    Dim Resultat As String
     
        i = 1
        DerLine = Sheets("Cible").Cells(Columns(1).Cells.Count, 1).End(xlUp).Row
     
        ThisWorkbook.Sheets("Cible").Range("K1").Value = DerLine
        i = DerLine
     
        NomFichier = Dir("c:\vero\")
     
        Do While NomFichier <> ""
           If Right(NomFichier, 4) = ".xls" Then
               i = i + 1
               Resultat = "c:\vero\" & NomFichier
               Workbooks.Open Resultat
     
               ThisWorkbook.Sheets("Cible").Range("A" & i).Value = Workbooks(NomFichier).Sheets(1).Range("A1").Value
               ThisWorkbook.Sheets("Cible").Range("B" & i).Value = Workbooks(NomFichier).Sheets(1).Range("D1").Value
               ThisWorkbook.Sheets("Cible").Range("C" & i).Value = Workbooks(NomFichier).Sheets(1).Range("B4").Value
               ThisWorkbook.Sheets("Cible").Range("D" & i).Value = Workbooks(NomFichier).Sheets(1).Range("B5").Value
               ThisWorkbook.Sheets("Cible").Range("E" & i).Value = Workbooks(NomFichier).Sheets(1).Range("C4").Value
               ThisWorkbook.Sheets("Cible").Range("F" & i).Value = Workbooks(NomFichier).Sheets(1).Range("C5").Value
               ThisWorkbook.Sheets("Cible").Range("G" & i).Value = Workbooks(NomFichier).Sheets(1).Range("D5").Value
               ThisWorkbook.Sheets("Cible").Range("H" & i).Value = Workbooks(NomFichier).Sheets(1).Range("B8").Value
               ThisWorkbook.Sheets("Cible").Range("I" & i).Value = Workbooks(NomFichier).Sheets(1).Range("D8").Value
               ThisWorkbook.Sheets("Cible").Range("J" & i).Value = Workbooks(NomFichier).Sheets(1).Range("F18").Value
     
               Workbooks(NomFichier).Close
     
              End If
            NomFichier = Dir
        Loop
     
    End Sub
    J'espère que tu trouveras ton bonheur dans ce code.

    Bonne journée.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 51
    Par défaut
    ok il me fait des trucs intéressants

    merci

Discussions similaires

  1. rassembler plusieurs fichiers dans un seul fichier
    Par emelfr dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 15/02/2009, 14h57
  2. "concaténer" plusieurs lignes dans un seul champ
    Par djobert dans le forum Langage SQL
    Réponses: 3
    Dernier message: 02/12/2008, 18h00
  3. [gzip] ecrire plusieurs fichier dans un seul .gz
    Par IP-Fix dans le forum Général Python
    Réponses: 1
    Dernier message: 14/05/2008, 19h49
  4. stocker/archiver plusieurs fichiers dans un seul fichier
    Par tatoo59 dans le forum VC++ .NET
    Réponses: 1
    Dernier message: 03/06/2007, 18h57
  5. comment zipper plusieurs fichiers dans un seul
    Par diamonds dans le forum Linux
    Réponses: 4
    Dernier message: 22/03/2007, 20h15

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