1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| '@Description "Renvoi un objet Range, Nothing si pas trouvée."
Public Function GetNameRange(ByVal Nom As String, Optional ByVal OWorkbook As Excel.Workbook) As Excel.Range
Dim localWorkbook As Excel.Workbook
Set localWorkbook = OWorkbook
If localWorkbook Is Nothing Then Set localWorkbook = ThisWorkbook
With localWorkbook
' // Boucle sur tous les nom pour savoir si ce nom existe
Dim itemName As Excel.Name
For Each itemName In .Names
With itemName
If StrComp(Nom, .Name, vbTextCompare) = 0 Then
Dim RefersTo As String
' // Récupération de la référence après le signe égal
RefersTo = Replace(.RefersTo, "=", vbNullString, 1, -1, vbTextCompare)
If InStr(1, .RefersTo, "!", vbTextCompare) Then
' // Construction du chemin complet à la référence
Set GetNameRange = localWorkbook.Worksheets(Split(RefersTo, "!", -1, vbTextCompare)(0)).Range(Split(RefersTo, "!", -1, vbTextCompare)(1))
End If
End If
End With
Next
End With
End Function |
Partager