Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim h As Hyperlink, p%, x$
Application.EnableEvents = False 'désactive les évènements
For Each h In Sh.Hyperlinks
p = InStr(h.SubAddress, "!")
If p Then
x = "'" & Sh.Name & "'!" & Mid(h.SubAddress, p + 1)
If InStr(Sh.Name, " ") = 0 And Not IsNumeric(Sh.Name) Then x = Replace(x, "'", "")
h.SubAddress = x
h.Parent = x
End If
Next
Application.EnableEvents = True 'réactive les évènements
End Sub