Sub renommerhyper(feuille As String, anciennom As String, nouveaunom As String)
If Sheets(feuille).Hyperlinks.Count = 0 Then Exit Sub
Dim subad As String
Dim anch As Range
'pour chaque lien de la feuil1
For Each h In Sheets(feuille).Hyperlinks
'si le lien concerne l'ancien nom
If h.SubAddress = anciennom Then
'on remplace dans la subadress l'ancien nom par le nouveau nom
subad = Replace(h.SubAddress, anciennom, nouveaunom)
'on redefinit le anch
Set anch = Sheets(feuille).Range(h.Range.Address)
'on efface l'hyperlink
h.Delete
'on le réecrit
ActiveSheet.Hyperlinks.Add anchor:=anch, Address:="", SubAddress:=subad
End If
Next
End Sub
'macro pour adresser les hyperlink de la feuil1 au nouveau nom
'd'une feuille qui a été renommée
Sub renommerhyper(feuille As String, anciennom As String, nouveaunom As String)
If Sheets(feuille).Hyperlinks.Count = 0 Then Exit Sub
Dim subad As String
Dim anch As Range
'pour chaque lien de la feuil1
For Each h In Sheets(feuille).Hyperlinks
'si le lien concerne l'ancien nom
'If InStr(h.SubAddress, anciennom) <> 0 Then
If Left(h.SubAddress, Len(anciennom)) = anciennom Then
'on remplace dans la subadress l'ancien nom par le nouveau nom
subad = Replace(h.SubAddress, anciennom, nouveaunom)
'on redefinit le anch
Set anch = Sheets(feuille).Range(h.Range.Address)
'on efface l'hyperlink
h.Delete
'on le réecrit
ActiveSheet.Hyperlinks.Add anchor:=anch, Address:="", SubAddress:=subad
End If
Next
End Sub
for each sh in worksheets
Call renommerhyper(sh.Name, anciennom , nouveaunom )
next sh