Sub b()
Dim w As Worksheet, n%, LO As Object, x$
For Each w In Worksheets
n = n + w.ListObjects.Count
For Each LO In w.ListObjects
x = x & vbLf & LO.Name & " en feuille " & w.Name
Next LO, w
MsgBox n & " tableaux structurés :" & x
End Sub
De même qu'il n'apparaissent pas dans les formules à l'appel de la touche F3, ce ne sont pas des noms comme les autres
Il faut lister les listobjects et non les noms
Mais la question est surtout liée au contexte et au besoin et je rappelle la nécessité de nommer de façon signifiante les Tableaux structurés de même qu'on nomme les onglets et les classeurs...
Sub b()
Dim w As Worksheet, n%, LO As Object, x$
For Each w In Worksheets
n = n + w.ListObjects.Count
For Each LO In w.ListObjects
x = x & vbLf & LO.Name & " en feuille " & w.Name
Next LO, w
MsgBox n & " tableaux structurés :" & x
End Sub
En effet, et pas seulement. Je suis moi-même un partisan des noms (onglet, variables, tableaux, etc...) auto-explicatifs clairs quitte à manipuler des noms à rallonge car la maintenance et sa facilitation doivent être le 1er souci du développeur (Confucius vers 502 BC).