Fusioner plusieurs classeurs Excel

RomainHoullier

XLDnaute Nouveau
Bonjour,

Je suis bien conscient que ce type de problème a été abordé plusieurs fois sur le forum malheureusement jamais de la manière qu'il me faudrait je suis donc dans une impasse.

J'ai un dossier "Compil - Copie" dans lequel se trouvent 400 fichiers classés par nom (les noms sont en fait des codes SIRET les fichiers sont donc classés, dans le dossier, du plus petit au plus grand)

Chacun de ces fichiers contient une unique feuille nommée "Annexe 3".

J'aurai besoin d'une macro qui réalise les actions suivantes:
- Copier au sein d'un unique fichier l'unique feuille présente sur les 400 fichiers
- Qui garde l'ordre dans lequel les fichiers sont classés au sein du dossier (donc du plus petit au plus grand comme les noms sont des numéros)
- Nome chacune des nouvelles feuilles par le nom du fichier duquel elle est tirée.

Jusqu'à présent les Macro que j'ai trouvé sur ce site (et Google d'une manière générale) me permettent en effet de copier toutes les feuilles des différents fichiers mais ne respectent pas l'odre du dossier, et les feuilles crées s'appellent "Mapage", "Mapage (2)", "Mapage (3)" etc...

Merci d'avance pour l'aide que vous pourrez m'apporter. Je fourni en copie la macro dont je me sers pour le moment mais qui ne respecte que la première des trois requêtes dont j'ai besoin.

Romain.

HTML:
Sub consolide()
  ChDir ActiveWorkbook.Path
  Set classeurMaitre = ActiveWorkbook
  sup
  compteur = 1
  nf = Dir("*.xls")
  Do While nf <> ""
    If nf <> classeurMaitre.Name Then
      Workbooks.Open Filename:=nf
      For k = 1 To Sheets.Count
        Sheets(k).Copy After:=classeurMaitre.Sheets(classeurMaitre.Sheets.Count)
        classeurMaitre.Sheets(classeurMaitre.Sheets.Count).Name = "Mapage" & compteur
        compteur = compteur + 1
      Next k
      Workbooks(nf).Close False
    End If
    nf = Dir
  Loop
End Sub

Sub sup()
  Application.DisplayAlerts = False
  If Sheets.Count > 1 Then
    Sheets("Accueil").Move before:=Sheets(1)
    Sheets(2).Select
    For i = 2 To Sheets.Count
      ActiveSheet.Delete
    Next i
  End If
End Sub
 

RomainHoullier

XLDnaute Nouveau
Re : Fusioner plusieurs classeurs Excel

Yep bien sûr, voilà un exemple, les ++ représentent le reste du numéro SIRET et les !! le nom des sociétés (pour rester anonyme)
 

Pièces jointes

  • Annexe 3_31+++++++-!!!!!_15-11-18.zip
    7.7 KB · Affichages: 26
Dernière modification par un modérateur:

gosselien

XLDnaute Barbatruc
Re : Fusioner plusieurs classeurs Excel

re,

pour l'ordre, pas de soucis, il y a des codes pour trier les feuilles :)
il n'y a pas de feuille "Accueil" dans ton classeur et tu ne donnes pas un ou 2 (de préférence) autres fichiers pour voir comment on peut arranger ça ("on" , ce n'est pas nécessairement moi, mais je débroussaille le travail :D )

 

RomainHoullier

XLDnaute Nouveau
Re : Fusioner plusieurs classeurs Excel

Ah yes ok je vois, non en fait Le fichier que j'ai mis en pièce jointe représente l'un des fichier qui doit être inséré (il y en a 400 comme ça).

Après je n'ai pas besoin de modification particulière, juste d'insérer toutes les feuilles des 400 fichiers dans un seul et unique fichier qui comportera donc 401 pages, les 400 pages des fichiers et une page d'accueil ou je vais juste faire un récap et des liens hipertextes pour naviguer rapidement d'une page à l'autre.
 

RomainHoullier

XLDnaute Nouveau
Re : Fusioner plusieurs classeurs Excel

Yes voilà deux fichier comprenant une feuille chacun, sachant que j'aimerai une macro que je puisse insérer sur un troisième fichier (vierge) qui comprendra donc les feuilles de chacun des deux fichiers, ou chaque feuille aura le nom du fichier dont elle provient.
 

Pièces jointes

  • Exemple.zip
    15.3 KB · Affichages: 21
  • Exemple.zip
    15.3 KB · Affichages: 19

gosselien

XLDnaute Barbatruc
Re : Fusioner plusieurs classeurs Excel

oui..

je suis dur de la comprenette parfois....

comment sais-tu (la date en fin du nom je présume) quel est le premier, le 2e, le 3e etc ?
puisque tu les veux dans le même ordre une fois importé , il faut savoir quel est le 1er à importer, le 2e etc etc...
 

gosselien

XLDnaute Barbatruc
Re : Fusioner plusieurs classeurs Excel

Bon....

une tentative à tester avec TOUS les classeurs dans le même répertoire; c'est basé sur les caractères
Annexe 3_300000002-DES MACHINS_15-11-18

P.
 

Pièces jointes

  • Test import.zip
    61.5 KB · Affichages: 25

gosselien

XLDnaute Barbatruc
Re : Fusioner plusieurs classeurs Excel

nf = Dir("anne*.xl*") <----> ce sont différents types de fichiers excel dont le nom commence par "anne"

Tu as bien des fichiers ".xl*" dans ce répertoire ?

Je viens de mettre *txt et là il fait aussi le saut jusqu'àu tri :)
 

Discussions similaires