Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim RefFic As String, Wbk As Workbook, Wsh As Worksheet
If Target.Address <> "$C$2" Then Exit Sub
If Target = "" Then Exit Sub
Application.EnableEvents = False: Application.ScreenUpdating = False
' RefFic = ThisWorkbook.Path & "\nom" & Space(1) & [C2] & ".xlsx" ' ?
RefFic = "S:\dossier1\nom " & [C2] & ".xlsx"
Range("A3:I" & Rows.Count).Clear
If Dir(RefFic) <> "" Then
Set Wbk = Workbooks.Open(Filename:=RefFic)
Set Wsh = Wbk.Sheets("feuil1")
Wsh.Range("A3:I" & Wsh.Cells.Find("*", , , , xlByRows, xlPrevious).Row).Copy Me.Range("A3")
Wbk.Close
Else
MsgBox "Casseur introuvable :" & vbLf & RefFic, vbInformation, "Information"
End If
Application.EnableEvents = True
End Sub