Lister les table-tableaux de toutes mes feuilles

Bonjour,

Je voudrais lister tous les "tableaux" ou "tables" de toutes mes feuilles mais je ne trouve pas la syntaxe à utiliser...

J'ai bien un truc ainsi mais il "oublie" les 2 ou tableaux d'un même onglet

Sub BoucleTableauxFeuille()
Dim Ws As Worksheet
Dim ListObj As ListObject
 Set Ws = Worksheets("Feuil1")
 For Each ListObj In Ws.ListObjects
    MsgBox ListObj.Name & " : " & ListObj.Range.Address 
Next
End Sub

edit: Oups ! trouvé sur forum anglophone

Sub LoopThroughAllTablesinWorkbook()
'PURPOSE: Loop through and apply a change to all Tables in the Excel Workbook
'SOURCE: www.TheSpreadsheetGuru.com/the-code-vault
Dim tbl As ListObject
Dim sht As Worksheet
Dim I: I = 4
'Loop through each sheet and table in the workbook
  For Each sht In ThisWorkbook.Worksheets
    For Each tbl In sht.ListObjects
        Sheets("3-fournisseur").Cells(I, "I") = sht.Name
        Sheets("3-fournisseur").Cells(I, "J") = tbl.Name
        Sheets("3-fournisseur").Cells(I, "K") = tbl.Range.Address
         I = I + 1
    Next tbl
  Next sht
End Sub

Sorry , google est mon ami , je confirme

Bonjour,

à tester,

Sub BoucleTableauxFeuille()
'lister tous les "tableaux" de toutes les feuilles
Dim Ws As Worksheet
Dim ListObj As ListObject
Set Ws = Worksheets("Feuil1")
For Each f In Worksheets
 For Each ListObj In f.ListObjects
    MsgBox ListObj.Name & " : " & f.Name & " " & ListObj.Range.Address
 Next
Next
End Sub

Intéressant Isabelle ... et pour toutes les feuilles, voici comment je me le suis adapté :

Sub BoucleTableauxFeuille()
'lister tous les "tableaux" de toutes les feuilles
Dim Ws As Worksheet
Dim ListObj As ListObject
For Each Ws In Worksheets
    For Each f In Worksheets
        For Each ListObj In f.ListObjects
            MsgBox Ws.Name & " - " & ListObj.Name & " : " & f.Name & " issu de " & ListObj.Range.Address
        Next
    Next
Next
End Sub

Bonjour Steelson, patrick1957

j'ai ajouté les "Titre" de colonnes

Sub BoucleTableauxFeuille()
'lister tous les "tableaux" et "Entête" de toutes les feuilles
Dim Ws As Worksheet
Dim ListObj As ListObject
Set Ws = Worksheets("Feuil1")
col = 3

For Each f In Worksheets
  For Each ListObj In f.ListObjects
    n = n + 1
    Ws.Cells(n, 2) = f.Name
    Ws.Cells(n, 1) = ListObj.Name
    Ws.Cells(n, 3) = ListObj.Range.Address(0, 0)
     For i = 1 To ListObj.ListColumns.Count
      col = col + i
      Ws.Cells(n, col) = ListObj.ListColumns(i)
      Ws.Cells(n, col + 1) = ListObj.ListColumns(i).Range.Address(0, 0)
     Next
     col = 3
 Next
Next
End Sub

Hello

merci à vous , problème résolu

P.

j'ai ajouté les "Titre" de colonnes

super, merci

outil très pratique

attention Isabelle, la nouvelle macro n'est pas celle du fichier (j'ai corrigé pour moi)

Michel

attention Isabelle, la nouvelle macro n'est pas celle du fichier (j'ai corrigé pour moi)

ok merci!

du coup j'ai fais une correction sur la variable col, il y avait un décalage à droite, maintenant il n'y en n'a plus.

Sub BoucleTableauxFeuille()
'lister tous les "tableaux" et "Entête" de toutes les feuilles
Dim Ws As Worksheet
Dim ListObj As ListObject
Set Ws = Worksheets("Feuil1")

For Each f In Worksheets
  For Each ListObj In f.ListObjects
    n = n + 1
    Ws.Cells(n, 1) = f.Name
    Ws.Cells(n, 2) = ListObj.Name
    Ws.Cells(n, 3) = ListObj.Range.Address(0, 0)
        For i = 1 To ListObj.ListColumns.Count
            col = Ws.Cells(n, Columns.Count).End(xlToLeft).Column + 1
            Ws.Cells(n, col) = ListObj.ListColumns(i)
            Ws.Cells(n, col + 1) = ListObj.ListColumns(i).Range.Address(0, 0)
        Next
 Next
Next
End Sub
Rechercher des sujets similaires à "lister table tableaux toutes mes feuilles"