Compilation de plusieurs fichiers dans un seul

Bonjour,

je suis coordonnateur d'une AMAP (Association pour le maintien d'une agriculture paysanne) de manière bénévole.

Les membres de l'AMAP peuvent réaliser des commandes hebdomadaire sur un site. A la fin de chaque trimestre, j'exporte chaque commande et je fais les totaux.

J'ai déjà réussi pour un seul fichier excel (donc une commande) à faire la somme totale de chaque personne à l'aide de VBA et j'ai également recréé une feuille dans le classeur EXCEL que j'ai appelé "Récapitulatif" où je met le nom de la personne avec le total qu'elle a commandé pour cette commande.

J'ai fait cette opération pour chaque commande. Chaque fichier est nommé différemment, par exemple : "AMAP Graine d'ortie - Delivery Commande Pains et fromage 20-212020-07-16 - Par membre.xlsm", avec la date de la commande.

Je souhaite à présent, mettre dans un seul et nouveau fichier l'ensemble des classeurs récapitulatif afin de faire le total pour le trimestre.

Pour la suite, pour ce qui est de faire la comparaison et la gestion des noms pour l'ensemble du trimestre, ça je pense que je sais faire puisque je le fais déjà pour une commande.

J'ai pour le moment réussi à ouvrir un nouveau fichier et a l'appelé :

Public Sub XCONCATENATION()

gestion

End Sub

Private Sub gestion()

Dim test As Workbook

Dim Recapitulatif As Worksheet

Dim Total As Worksheet

    Workbooks.Add
    ActiveWorkbook.SaveAs _
    Filename:="D:\Users\heckelbri\Documents\Personnel\AMAP\commandes\commandes.xlsx"
    ActiveSheet.Name = "Total"

End Sub

Mais la suite, malgré avoir parcouru de nombreux sites webs et forums. Je n'arrive pas à avancer. Pourriez-vous m'aider ?

Merci d'avance
Brice

Bonjour,

tu peux utiliser la partie compiler de cette application : https://www.excel-pratique.com/fr/telechargements/utilitaires/dispatcher-compiler-excel-no466

sinon, mets un fichier a minima pour qu'on puisse l'adapter à ton besoin

Super ! je vais regarder ça. Merci !

Sinon voici un fichier exemple :

Attention à l'orthographe du nom d'onglet

Sub compiler()
Dim wbk1 As Workbook, wbk2 As Workbook, rng As Range
Dim MonRepertoire, Repertoire As FileDialog, monFichier$, onglet$

onglet = "Récaptitulatif"

    Set Repertoire = Application.FileDialog(msoFileDialogFolderPicker)
    Application.FileDialog(msoFileDialogFolderPicker).Title = "Choix du répertoire de stockage des fichiers générés"
    Repertoire.Show
    If Repertoire.SelectedItems.Count = 0 Then Exit Sub
    MonRepertoire = Repertoire.SelectedItems(1) & "\"

    Set wbk1 = ThisWorkbook
    monFichier = Dir(MonRepertoire & "*.xls*")

    Do While monFichier <> ""
        Set wbk2 = Workbooks.Open(MonRepertoire & monFichier)

        Set rng = wbk2.Sheets(onglet).UsedRange.Offset(1, 0)
        rng.Copy Destination:=wbk1.Sheets(onglet).Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)

        Application.DisplayAlerts = False
            wbk2.Close False
        Application.DisplayAlerts = True
        monFichier = Dir
    Loop

End Sub

Ahhh top ! tout marche même ma suite ! un GRAND merci

J'ai une autre question du coup, si je souhaite enregistrer mon fichier sous via ActiveSheet save as, comment dois je faire pour récupérer le nom du fichier ouvert (par exemple le nom du fichier que j'ai déposé sur le site précédemment)? merci d'avance

sachant qu'initialement je pars d'un .CSV et que je l'enregistre manuellement en .xlsx ?

Parfait

N'oublie de clore ce fil de discussion en cliquant sur

as-tu vu mon dernier message avant le tien ?

désolé, je n'avais pas vu !

J'ai une autre question du coup, si je souhaite enregistrer mon fichier sous via ActiveSheet save as, comment dois je faire pour récupérer le nom du fichier ouvert (par exemple le nom du fichier que j'ai déposé sur le site précédemment)? merci d'avance

sachant qu'initialement je pars d'un .CSV et que je l'enregistre manuellement en .xlsx ?

C'est un peu compliqué ... il y a plusieurs questions !

  1. d'abord tu pars d'un fichier csv ... ok, en plus il est en utf-8 (unicode) et ici il n'est pas retranscris proprement : il serait plus simple en effet de compiler les fichiers csv en tenant compte du codage
  2. ensuite, il semble que tu fasses un TCD pour obtenir le récapitulatif ? à mon sens, dans ce cas autant le faire après compilation des fichiers csv
  3. ma troisième question/interrogation est que je ne comprends pas quel fichier tu veux enregistrer en xlsx ? la compilation ou les fichiers csv de base ?

Peux-tu éclaircir ?

je viens de réussir à faire ce que je souhaite faire !

par contre, pour répondre à tes questions,

2- je ne sais pas c'est quoi "TCD" ?

3- en fait je pars d'un premier fichier en .csv où j'effectue un premier calcul puis un récapitulatif (ce que je viens de réussir à faire c'est d'enregistrer ce récapitulatif en .xls)

Après je recompile tout les fichiers grâce à ton fichier puis je refais une somme totale !

Rechercher des sujets similaires à "compilation fichiers seul"