Fusionner plusieurs fichiers en 1 seul

RORO0559 Messages postés 42 Statut Membre -  
f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   -
Bonsoir,
J'ai plusieurs fichiers du 1er à la fin de chaque mois je voudrais les compiler pour en faire un seul. Le nombre de lignes peut être différent. Merci de me spécifier ou je dois effectuer des modifications, je n'ai pas l'habitude avec les macros.
Cordialement

9 réponses

  1. Frenchie83 Messages postés 2254 Statut Membre 339
     
    Bonjour,

    je récupère systématiquement les titres de chaque fichier
    Normal, vous récupérez tout avec "UsedRange"

    Remplacez cette ligne
    OS.UsedRange.Copy DEST


    par
    OS.Range("A2:K" & OS.Range("A" & Rows.Count).End(xlUp).Row).Copy DEST


    Cdlt
    2
    1. RORO0559 Messages postés 42 Statut Membre
       
      Bonsoir,
      Merci encore pour votre aide une autre question,
      J'aimerai récupérer sur la feuille 2 une fois, des données qui existent plusieurs fois sur la feuille 1(exemple l’indicatif 159 5 fois) afin de faire la synthèse
      Sub Macro2()
      Range("A1:A6100").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Worksheets("Feuil2").Range("A1"), Unique:=True
      End Sub;
      Celle ci fonctionne, mais j'aimerai nommer les feuilles et la cela ne va plus, merci.
      0
  2. Frenchie83 Messages postés 2254 Statut Membre 339
     
    Bonjour,

    Pourquoi 1 fichier par jour?
    Pourquoi pas plutôt 1 seul fichier avec 1 feuille par jour? Dans ce cas, c'est plus facile de faire la synthèse, et pas besoin de macros.

    Cdlt
    1
  3. Frenchie83 Messages postés 2254 Statut Membre 339
     
    Ok, mais pourquoi un fichier par jour plutôt qu'une feuille par jour dans un seul fichier?
    1
  4. Raymond PENTIER Messages postés 58226 Date d'inscription   Statut Contributeur Dernière intervention   17 490
     
    Bonsoir.
    Tes explications restent incomplètes et difficiles à appréhender ... Dans ce dernier message tu écris :
    ... deux fichiers avec l'extraction journalière ... Un soucis je récupère systématiquement les titres de chaque fichier ... Les fichiers sont sauvegarder un par un

    Devons-nous comprendre qu'il y a une base de données depuis laquelle des extractions automatiques sont faites par un logiciel qui fournit des fichiers journaliers ?
    Parce que jusqu'à maintenant tu n'avais jamais évoqué cette procédure !
    1
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Roro0559
     
    Bonjour la base va être alimentée dans le fichier récap joint la ou j ai la macro avec les 365 journées récupérées pour une
    analyse mensuelle et annuelle
    Les fichiers sont récupérés par extraction
    Merci
    1
  7. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour tout le monde et bonne fetes de fin d'annee

    Votre code modifie pour recup des x fichiers en une seule fois avec entete pour le premier, mais recup pas dans l'ordre des jours.

    Si par la suite recup journaliere, il y aura des modifs pour eviter de recuperer les meme fichiers x fois

    Sub Macro1()
    Dim CD As Workbook 'd?clare la variable CD (Classeur Destination)
    Dim CH As String 'd?clare la variable CH (CHemin d'acc?s)
    Dim OD As Worksheet 'd?clare la variable OD (Onglet Destination)
    Dim SF As Object 'd?clare la variable SF (Syst?me de Fichiers)
    Dim D As Object 'd?clare la variable D (Dossiers)
    Dim EF As Object 'd?clare la variable EF (Ensemble des Fichiers)
    Dim F As Object 'd?clare la variable F (Fichier)
    Dim CS As Workbook 'd?clare la variable CS (Classeur Source)
    Dim OS As Worksheet 'd?clare la variable CD (Onglet Source)
    Dim DEST As Range 'd?clare la variable CD (Classeur Destination)
    
    On Error GoTo Fin
    
    Application.ScreenUpdating = False
     
    Set CD = ThisWorkbook 'd?finit le classeur destination CD
    CH = CD.Path 'd?finit le chemin d'acc?s CH
    Set OD = CD.Sheets(1) 'd?finit l'onget destination OD
    Set SF = CreateObject("Scripting.FileSystemObject") 'd?finit le syst?me de fichiers SF
    Set D = SF.GetFolder(CH) 'd?finit le dossier de travail D
    Set EF = D.Files 'd?finit l'ensemble des fichiers EF du dossier de travail D
    'raz pour cette macro recup tous les fichiers en une seule fois.
    'a modifier si recup fichier un par un par chaque jour
    For Each F In EF 'boucle sur tous les fichiers F de l'ensemble ds fichiers EF
        If F.Name <> ThisWorkbook.Name And F.Name Like "*.xls*" Then 'condition : si le nom du fichier n'est pas le nom de ce fichier et si le fichier a une extension commen?ant par ".xls"
            Workbooks.Open (F) 'ouvre le fichier
            Set CS = ActiveWorkbook 'd?finit le classeur CS
            Set OS = CS.Sheets(1) 'd?finit l'onglet OS
            'd?finit la cellule de destination DEST (A1 si A1 est vide sinon, la premi?re cellule vide de la colonne A de l'onglet OD)
            Set DEST = IIf(OD.Range("A2").Value = "", OD.Range("A2"), OD.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0))
            'OS.UsedRange.Copy DEST 'copie les donn?es de l'onglet source OS et les colle dans DEST
            LD = IIf(OD.Range("A2").Value = "", 1, 2)       'si premier fichier: A1 sinon A2
            OS.Range("A" & LD & ":K" & OS.Range("A" & Rows.Count).End(xlUp).Row).Copy DEST
            CS.Close 'ferme le classeur source
            Set CS = Nothing 'initialise la variable CS
        End If 'fin de la condition
    Next F 'prochain fichier de la boucl
    Fin:
    CD.Save 'enregistre ce fichier
    Application.ScreenUpdating = True
    End Sub
    
    
    1
  8. Roro0559
     
    Bonjour c'est une action journalière sur toute l annee avec une synthèse en fin d année comme c est répétitif une macro me semblait bien merci cordialement
    0
  9. RORO0559 Messages postés 42 Statut Membre
     
    J ai aujourd’hui pratiquement 365 fichiers c'est pourquoi j'aimerai un fichier avec une macro
    Merci
    0
    1. Raymond PENTIER Messages postés 58226 Date d'inscription   Statut Contributeur Dernière intervention   17 490
       
      Bonsoir.

      Pourrais-tu avoir l'obligeance de bien vouloir répondre à la question (importante) que Frenchie83 t'a posée à deux reprises ?
      On sait déjà qu'il y a 365 jours dans l'année ! On te demande pourquoi tu ne fais pas un seul fichier de 365 feuilles, au lieu de créer 365 fichiers différents !!!
      Parce que de toutes façons tu t'arraches maintenant les cheveux à rassembler ces 365 fichiers en un seul ...

      Envoie-nous déjà 3 de ces fichiers, en modifiant les données confidentielles ; on étudiera ce qu'il est possible de concevoir.
       1) Tu vas dans https://www.cjoint.com/ 
      2) Tu cliques sur [Parcourir] pour sélectionner ton fichier (15 Mo maxi)
      3) Tu défiles vers le bas pour cliquer sur le bouton bleu [Créer le lien Cjoint]
      4) Au bout de quelques secondes la deuxième page s'affiche, avec le lien en gras ; tu fais un clic-droit dessus et tu choisis "Copier le lien"
      5) Tu reviens dans ta discussion sur CCM, et dans ton message tu fais "Coller".
      =>Voir la fiche https://www.commentcamarche.net/faq/29493-utiliser-cjoint-pour-heberger-des-fichiers
      Il existe aussi :
      1) https://mon-partage.fr/
      2) https://www.transfernow.net/
      0
  10. RORO0559 Messages postés 42 Statut Membre
     
    Bonsoir,
    Voici trois fichiers deux fichiers avec l'extraction journalière et un autre avec une petite macro que j'ai essayé de faire. Un soucis je récupère systématiquement les titres de chaque fichier.
    Tout cela pour faire une synthèse mensuelle et annuelle.
    Merci pour votre aide
    Cordialement
    https://www.cjoint.com/c/ILrt6shyr2g
    https://www.cjoint.com/c/ILrt4VAFnog
    https://www.cjoint.com/c/ILrt5IfXqtg

    Les fichiers sont sauvegarder un par un
    0