Bonsoir dev_co,
Je pense que le fichier doit être ouvert pour faire une mise à jour.
Par ailleurs tu fais appel à la feuille "2" qui n'existe pas.
En supposant que les 2 fichiers sont dans le même répertoire :
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("B11:B30")) Is Nothing Then
If Target.Count > 1 Then Exit Sub
rg = Target.Address
Col = Target.Column
rang = Target.Row
chemin = ActiveWorkbook.Path
'je mettrais le chemin
Workbooks.Open chemin & "\vendeurshd.xlsm"
ActiveWorkbook.Sheets(1).Range("I4") = Range(rg).Value
End If
Et chez moi ça fonctionne.
Gaël