Bonjour tenrev...
En supposant l'image d'un tableau de ce genre...
Voici un code (inspiré d'un très vieux code de Mytâ (2011) https://forum.excel-pratique.com/excel/copier-fichiers-xls-vers-repertoire-t26489.html) en plus beaucoup plus élaboré avec Vérification d'existence des fichiers, Confirmation des écrasements, Gestion des erreurs...
/code à copier dans un module standard, à adapter en fonction du cas/
Sub CopierRepUnique()
Dim tabFic()
Dim tmp
Dim confirme As Boolean
Dim confTous As Boolean
Dim repBox
Dim errCode
Dim ficObjSys As Object, oldRep, newRep, ficAct
Set ficObjSys = CreateObject("Scripting.FileSystemObject")
confTous = False
newRep = Cells(3, 3)
tabFic = Range(Cells(7, 2), Cells(Cells(Rows.Count, 2).End(xlUp).Row, 5))
For cptfic = 1 To UBound(tabFic, 1)
tmp = Split(tabFic(cptfic, 4), "\")
oldRep = ""
For cptrep = UBound(tmp, 1) - 1 To 0 Step -1
oldRep = tmp(cptrep) + "\" + oldRep
Next
ficAct = tmp(UBound(tmp, 1))
If FicExisteDeja(newRep & ficAct) And Not confTous Then
repBox = ConfirmeBox(tabFic(cptfic, 2), ficAct)
confirme = repBox = vbYes
confTous = repBox = vbCancel
Else
confirme = True
End If
If confirme Or confTous Then
On Error GoTo errCopie
ficObjSys.copyfile oldRep & ficAct, newRep & ficAct
On Error GoTo 0
End If
Next
Set ficObjSys = Nothing
Exit Sub
errCopie:
If Err.Number = 53 Then
errCode = "Fichier Absent"
Else
errCode = "Erreur " & Err.Number & " sur..."
End If
MsgBox ficAct & vbCrLf & "du produit " & tabFic(cptfic, 2), vbCritical, errCode
Resume Next
End Sub
Function FicExisteDeja(lequel)
FicExisteDeja = True
On Error GoTo errExisteDeja
Open lequel For Input As FreeFile()
Close #FreeFile()
On Error GoTo 0
Exit Function
errExisteDeja:
FicExisteDeja = False
On Error GoTo 0
End Function
Function ConfirmeBox(produit, fic)
ConfirmeBox = MsgBox( _
"La photo " & fic & vbCrLf & _
"du produit " & produit & vbCrLf & _
"existe déjà dans ce répoertoire..." & vbCrLf & vbCrLf & _
"Voulez-vous le Remplacer ?" & vbCrLf & vbCrLf & _
"(Annuler pour ne plus poser la Question)", vbQuestion + vbYesNoCancel, "ATTENTION !")
End Function
PS: Je propose le fichier de cet manière parce qu'il s'agit d'un module d'une application plus complexe.../