VBA Excel 2007: Tabellennamen aus Namensmanager?

Hallo liebe Experten!

ich arbeite mich seit kurzem mit VBA in Kombination mit Excel 2007 ein und hab nun eine kleine Frage:

Und zwar besteht ja die Möglichkeit Tabellen (über Einfügen -> Tabelle) zu erstellen, die auch automatisch einen eigenen Namen haben, welcher im Namensmanger als Tabellenname gekennzeichnet ist.
Wie kann ich diese Namen in VBA ansprechen, denn über Names funktioniert es nicht…

For i = 1 To Names.Count
MsgBox (Names(i).Name)
Next i

gib nur selbstdefinierte Namen aus.
In der Objektreferenz habe ich nichts vernünftiges gefunden oder ich habs nicht Verstanden :smiley:
Vielen Dank schonmal!

Hallo quazee.

Meinst Du die Eigenschaft

Name

dann kannst Du den Namen mit folgendem Code in „DieseArbeitsmappe“ ändern:

Private Sub Workbook\_NewSheet(ByVal Sh As Object)
Sh.Name = "bla"
End Sub

Meinst die Eigenschaft

(Name)

dann sind Dir die Hände gebunden, denn diese Eigenschaft ist zur Laufzeit schreibgeschützt.

VG
Carsten

Hey,
vielen dank für die schnelle antowort, aber ich weiß nicht ob mein Problem wirklich klar ist (vll hab ich auch deine Antwort nicht richtig verstanden…)

Es geht nicht um Worksheets und deren Namen, sondern um die Namen der Bereiche/Tabellen die mit Einfügen->Tabelle erstellt werden.
Angenommen ich habe mehrere Sheets mit solchen Tabellen, deren Namen ich nicht kenne und darum mit VBA auslesen möchte.
Mit meinem Code werden alle Bereiche (Names(index)) ausgegeben, denen per Hand ein Name zugewiesen wurde, nicht aber die Tabellennamen. Darum frage ich mich, wie ich an sie rankomme :smiley:

Hallo quazee.

Dann hab’ ich wohl Deine Frage falsch verstanden.

Ich habe zwar Excel 2007, aber mit der Funktion von Tabellen einfügen bin ich noch nicht vertraut.

Die einzige Idee, die mir dann noch einfällt, ist, daß Du es 'mal mit der Eigenschaft „CodeName“ ausprobieren könntest, habe da aber keine große Hoffnung. Weiter kann ich Dir sonst leider nicht helfen.

VG
Carsten

Also das Problem hat sich erledigt! Falls es jemanden interessieren solte:
mit dem MakroRecorder (hätte man auch früher drauf kommen können) sieht man, dass diese Tabellen ListObjects sind.
Darum werden sie auch nicht durch Names angesprochen.Wenn man nun die Namen herausfinden möchte könnte das so aussehen:

Dim i As Integer
Dim n As Integer
Dim LstObjcts As ListObjects
Dim Tabelle As String

For i = 1 To Worksheets.Count
Set LstObjcts = Worksheets(i).ListObjects
 For n = 1 To LstObjcts.Count
 Tabelle = LstObjcts.Item(n).Name
 MsgBox (Tabelle)
 Next n
Next i