Sub Calcul(Target As Range)
Dim lig As Long, chemin$, onglet$, cel$, bar As Integer
On Error Resume Next
lig = Target.Row
chemin = Range("A" & lig)
onglet = Range("B" & lig)
cel = Range("C" & lig)
bar = InStrRev(chemin, "\") 'position de la dernière barre
chemin = Left(chemin, bar) & "[" & Right(chemin, Len(chemin) - bar) & "]"
With Range("D" & lig)
.Formula = "='" & chemin & onglet & "'!" & cel 'entre la formule en colonne D
.Value = .Value 'ne conserve que la valeur
End With
End Sub