Clever-Excel-Forum

Normale Version: div ListObjekt (e) umbenennen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Guten Abend,
ich möchte dynamische DropDowns variabel gestalten.
Dazu muss ich jedoch die aktuellen Namen der entsprechenden "intelligenten Tabellen" auslesen und entsprechend dem Zellinhalt bestimmter Zelle umbenennen.
hier sind meine VBA Kenntnisse absolut nicht ausreichend um diese Schleife zu programmieren.
Hätte jemand Lust, mir dabei zu helfen?
Gruß
Michael
Dazu bräuchte man eine Beispieldatei die identisch deiner is im Aufbau!
Hier eine Beispieltabelle

wenn die Namen der Personen sich ändern, muss die dazugehörige Tabelle der Positionen entsprechend umbenannt werden.
das möchte ich gerne automatisieren.

Gruß
Michael[attachment=25666]
Hallöchen,

her mal eine Antwort zu einer Schleife über die Tabellen. Das geht erst mal nur auf einem Blatt und die Änderung und Schleife über alle Blätter drumherum usw. schaffst Du.

For Each tabellen In ActiveSheet.ListObjects
MsgBox tabellen.Name
Next
@Schauan

das Problem, das ich VBA- Sprachlich habe ist, dass ich nicht weiß, wie ich es anstelle, die Einzelnen Tabellen anzusprechen und zu prüfen, ob der Name geändert werden muss.
Die For Next Schleife hatte ich auch schon im Netzt ermittelt. Aber mir fehlt hier explizit der Background bei Listobjecten .
Ich hatte schon probiert, in eine Zelle der jeweiligen Tabelle zu springen um dann den Namen auszulesen, zu vergleichen und mit dem der in einer Variablen gepeicherten zu ersetzen. Ich würde zuvor alle Überschriften in Variablen speichern und der Reihe nach als Tabellennamen einsetzen.
Und hier ist mein Problem, ich weiß nicht wie ich den (variablen) Bestandsnamen auslese um dann die Tabelle anzusprechen. Bisher habe ich nur Code zum umbenennen gefunden, wenn der alte Tabellenname bekannt war.

Gruß
Michael
Hallo Michael,

erst mal das auslesen aller vorhandenen Listobject-Namen. Die Namen werden in einer Collection gespeichert und bleiben bis zur nächsten Ausführung des Sub drin.
Ich weiß jetzt allerdings nicht, wie Du feststellen willst, welche Liste umbenannt werden soll. Ich kann auch erst morgen Abend weitermachen, muss jetzt offline gehen - morgen gegen 5 geht's wieder gen Arbeit ..

Code:
Option Explicit
Public colTabs As Collection
Sub test()
Dim blaetter As Worksheet, tabellen As ListObject
Set colTabs = New Collection
For Each blaetter In ThisWorkbook.Worksheets
  For Each tabellen In blaetter.ListObjects
    colTabs.Add tabellen.Name
  Next
Next
End Sub