avec le nom de l'onglet en dernière colonne
Option Explicit
Sub import()
Dim ws As Worksheet, f As Worksheet, Nom_Fichier As Variant, wb As Workbook, debut As Boolean, data As Range, derCol As Integer
Sheets("import").Select
Cells.Clear
Set ws = ActiveSheet
Nom_Fichier = Application.GetOpenFilename("Fichiers Excel (*.xlsx), *.xlsx")
If Nom_Fichier = False Then Exit Sub
Set wb = Workbooks.Open(Nom_Fichier)
debut = True
For Each f In wb.Worksheets
If debut Then
Set data = f.Range("A1").CurrentRegion
derCol = f.Range("A1").CurrentRegion.Columns.Count + 1
data.Copy Destination:=ws.Range("A1")
ws.Cells(1, derCol) = "source"
Else
Set data = f.Range("A1").CurrentRegion.Offset(1, 0).Resize(f.Range("A1").CurrentRegion.Rows.Count - 1, f.Range("A1").CurrentRegion.Columns.Count)
data.Copy Destination:=ws.Range("A" & Rows.Count).End(xlUp).Offset(1, 0)
End If
ws.Cells(Rows.Count, derCol).End(xlUp).Offset(1, 0).Resize(f.Range("A1").CurrentRegion.Rows.Count - 1, 1) = f.Name
debut = False
Next
wb.Close
End Sub