Function NomTableau(r As Range)
Application.Volatile
Dim LO As ListObject, a$(), n&
For Each LO In r.Parent.ListObjects
If Not Intersect(r, LO.Range) Is Nothing Then
ReDim Preserve a(n)
a(n) = LO.Name
n = n + 1
End If
Next
If n Then NomTableau = a Else NomTableau = "" 'vecteur ligne
End Function