Fusionner plusieurs fichiers en 1 seul

Fermé
RORO0559 Messages postés 40 Date d'inscription dimanche 15 décembre 2019 Statut Membre Dernière intervention 23 novembre 2020 - Modifié le 15 déc. 2019 à 21:57
f894009 Messages postés 17200 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 11 septembre 2024 - 27 déc. 2019 à 07:46
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

Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 338
18 déc. 2019 à 09:04
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
RORO0559 Messages postés 40 Date d'inscription dimanche 15 décembre 2019 Statut Membre Dernière intervention 23 novembre 2020
26 déc. 2019 à 21:28
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
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 338
16 déc. 2019 à 07:12
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
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 338
16 déc. 2019 à 09:21
Ok, mais pourquoi un fichier par jour plutôt qu'une feuille par jour dans un seul fichier?
1
Raymond PENTIER Messages postés 58651 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 19 septembre 2024 17 198
18 déc. 2019 à 01:56
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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
f894009 Messages postés 17200 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 11 septembre 2024 1 708
Modifié le 27 déc. 2019 à 07:47
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
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
RORO0559 Messages postés 40 Date d'inscription dimanche 15 décembre 2019 Statut Membre Dernière intervention 23 novembre 2020
16 déc. 2019 à 20:27
J ai aujourd’hui pratiquement 365 fichiers c'est pourquoi j'aimerai un fichier avec une macro
Merci
0
Raymond PENTIER Messages postés 58651 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 19 septembre 2024 17 198
17 déc. 2019 à 00:22
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
RORO0559 Messages postés 40 Date d'inscription dimanche 15 décembre 2019 Statut Membre Dernière intervention 23 novembre 2020
Modifié le 17 déc. 2019 à 21:02
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