Sub recopie_v4()
'Déclarations des variables
Dim swbk As Workbook: Dim DWk As Workbook
Dim r As Long: Dim i As Long: Dim rep
Dim nf As String
'/////////////////
'Définition du classeur de destination des recopies
Set DWk = ThisWorkbook ' ici le classeur actif
'désactivation du rafraichissement de l'affichage
Application.ScreenUpdating = False
r = _
DWk.Sheets("liste").Range("A65000").End(xlUp).Row
i = 1
For i = 1 To r
'ouverture des classeurs de la liste
Set swbk = _
Workbooks.Open(Filename:=DWk.Sheets("liste").Range("A" & i).Value, _
UpdateLinks:=False, _
ReadOnly:=True)
swbk.Sheets(1).Copy After:=DWk.Sheets("liste")
'ici on renomme la feuille recopiée
'avec le nom du classeur source suivi
'du nom de la feuille copiée
'ActiveSheet.Name = _
'swbk.Name & "_" & swbk.Sheets(1).Name
nf = _
Replace(StrReverse(Left(StrReverse(swbk.Name), _
InStr(1, StrReverse(swbk.Name), "-") - 1)), ".xls", vbNullString)
ActiveSheet.Name = nf & "_" & swbk.Sheets(1).Name
swbk.Close SaveChanges:=False
Next i
'ici le petit plus ;-)
rep = _
MsgBox("La recopie des feuilles est achevée." & Chr(13) _
& "Voulez-vous retourner sur la feuille liste?", _
vbInformation + vbYesNo, "Message")
If rep = 6 Then
DWk.Sheets("liste").Select
Else
Cancel = True
End If
'réactivation du rafraichissement écran
Application.ScreenUpdating = True
End Sub