Une petite macro vraiment intéressante.
Explication : La macro suivante liste les cellules et les plages nommées, dans l’ordre d’index des feuilles, et crée une table des matières avec liens hypertextes.
Attention à l’exécuter sur une feuille vierge !
Sub ListeNoms_OrdreFeuilles()
Dim N As Name
Dim PlageNom As Range
Dim i As Byte
Dim NumLigne As Byte
Cells(1, 1) = "NAME"
Cells(1, 2) = "VALUE"
Cells(1, 3) = "SHEET"
Cells(1, 4) = "ADDRESS"
Cells(1, 5) = "LINK"
NumLigne = 2
On Error Resume Next
For i = 1 To Worksheets.Count
For Each N In Worksheets(i).Parent.Names
Set PlageNom = Nothing
Set PlageNom = N.RefersToRange
If Not PlageNom Is Nothing Then
If Worksheets(i).Index = PlageNom.Worksheet.Index Then
Cells(NumLigne, 1) = N.Name
Cells(NumLigne, 2) = N.RefersToRange.Value
Cells(NumLigne, 3) = N.RefersToRange.Worksheet.Name
Cells(NumLigne, 4) = N.RefersToRange.Address(external:=False)
'pour un lien relatif
Worksheets(1).Hyperlinks.Add Anchor:=Cells(NumLigne, 5), _
Address:="", SubAddress:=N.RefersToRange.Worksheet.Name + "!" + N.RefersToRange.Address(external:=False)
'pour un lien absolu
'Worksheets(1).Hyperlinks.Add Anchor:=Cells(NumLigne, 5), _
Address:="", SubAddress:=N.RefersToRange.Address(external:=True)
NumLigne = NumLigne + 1
End If
End If
Next N
Next i
End Sub