XL 2019 Besoin d'aide pour créer du code VBA - fusion de plusieurs fichiers avec report de nom sur les onglets

CécileC

XLDnaute Nouveau
Bonjour,

J'ai plusieurs fichiers excel, chaque fichier ne comprend qu'une seule page qui n'a pas de nom.
J'aimerais compiler tous les fichiers dans un seul et que chaque onglet porte le nom du fichier d'origine.
Exemple : admettons que j'ai 3 fichiers : test1, test2, test3, chaque fichier n'a qu'un onglet sans nom, j'aimerais donc créer un fichier qui s'appelle CUMUL et qui a pour premier onglet, l'onglet du fichier test1 et l'onglet s'appelle test1, puis en deuxième onglet, l'onglet du fichier test2 et l'onglet s'appelle test2 etc.

Merci infiniment par avance pour votre aide.

Bien cordialement,

Cécile
 

Staple1600

XLDnaute Barbatruc
Bonsoir le fil, Cécile

Cécile
Dans la série , recyclons, recyclons ;)
Issu d'une de mes réponses dans un autre fil

VB:
Sub Compiler_XLSX()
Dim wb_A As Workbook, WBKS As Workbook, strPath$, fXLSX$, i&
On Error GoTo ErrHandler
With Application.FileDialog(4)
  .AllowMultiSelect = 0: .Title = "Choisir le répertoire"
  If .Show = -1 Then strPath = .SelectedItems(1)
End With
If strPath = "" Then Exit Sub
Application.ScreenUpdating = False
Set wb_A = ThisWorkbook: i = 1
fXLSX = Dir(strPath & "\*.xlsx")
Do While fXLSX <> vbNullString
  Set WBKS = Workbooks.OpenXML(strPath & "\" & fXLSX)
  WBKS.Sheets(1).Copy After:=wb_A.Sheets(wb_A.Sheets.Count)
  wb_A.Sheets(wb_A.Sheets.Count).Name = Split(fXLSX, ".")(0)
  WBKS.Close False
  i = wb_A.Sheets(1).UsedRange.Rows.Count + 2
  fXLSX = Dir()
Loop
Application.ScreenUpdating = True
wb_A.Save
Exit Sub
ErrHandler:
MsgBox "Aucun fichier XLSX!", vbCritical, "Erreur"
End Sub
Il suffit sélectionner (pas de double-clic) le dossier contenant les classeurs à compiler
(La macro dans cet exemple ne compilera que les fichiers *.xlsx)
 

Discussions similaires