Macro excel liste des cellules et plages nommées d’un classeur excel

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