Boucle Fusion fichiers feuille = nom fichier sans extension

Bonjour à toutes et tous,

J'ai réussi non sans mal (je débute en VBA) à adapter le code (je remercie d'ailleurs son auteur initial) ci après pour fusionner plusieurs fichiers en un seul (les feuilles de chacun des fichiers sources sont copier dans autant de feuilles dans le fichier compilé final).

Je n'arrive pas pas contre à faire en sorte que le nom des feuilles soient celui du fichier source sans l'extension.

J'ai essayé avec Name et Replace sans trouver la bonne syntaxe à écrire dans mon code et la boucle malgré mes recherches.

J'arrive à éventuellement écrire un nom de feuille définie suivie d'un numéro de compteur au cas ou il y'aurait plusieurs feuille sur le fichier source en reprenant ceci dans le code : Maitre.Sheets(Maitre.Sheets.Count).Name = " import " & compteur

Mais ma finalité serait de reprendre le non du fichier source sans l'extension (".xlsb" dans mon cas pratique).

Auriez vous une solution à me proposer ?

Merci

Cordialement

Hugues

Sub Fusion()

ChDir ActiveWorkbook.Path
  Set Maitre = ActiveWorkbook

  compteur = 1
  nf = Dir("*.xlsb")
  Do While nf <> ""
    If nf <> Maitre.Name Then
      Workbooks.Open Filename:=nf
      For k = 1 To Sheets.Count
        Sheets(k).Copy after:=Maitre.Sheets(Maitre.Sheets.Count)
        'Maitre.Sheets(Maitre.Sheets.Count).Name = "Feuille" & compteur c'est cette partie du code que je voudrais adapter à ma situation
        compteur = compteur + 1
      Next k
      Workbooks(nf).Close False
    End If
    nf = Dir
  Loop
End Sub

Bonjour

A tester

Option Explicit

Sub Fusion()
Dim Maitre As Workbook
Dim Compteur As Integer
Dim Nf As String
Dim K As Integer

  Application.ScreenUpdating = False
  ChDir ActiveWorkbook.Path
  Set Maitre = ActiveWorkbook

  Nf = Dir("*.xlsb")
  Do While Nf <> ""
    If Nf <> Maitre.Name Then
      With Workbooks.Open(Filename:=Nf)
        For K = 1 To .Sheets.Count
          .Sheets(K).Copy after:=Maitre.Sheets(Maitre.Sheets.Count)
          ActiveSheet.Name = Replace(Nf, ".xlsb", "") & " " & K
        Next K
        .Close False
    End With
    End If
    Nf = Dir
  Loop
End Sub

Bonjour Hugobass et banzai...

J'allais justement posé la question de que faire si il y a plusieurs feuilles dans le fichier source comment les nommées...

fred

Bonjour Fred406, Bonjour Banzai,

Merci à vous 2 d'avoir pris le temps de lire mon message

Banzai, merci pour ton code qui répond tout à fait à mes attentes, je coche donc ce post comme résolu.

Bonne soirée

Cordialement

Hugues

Rechercher des sujets similaires à "boucle fusion fichiers feuille nom fichier extension"