ListObjeects.Add => Tabellenbereich dynamisch ermitteln

  • Excel

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von petaod.

    ListObjeects.Add => Tabellenbereich dynamisch ermitteln

    Hallo zusammen

    in einem Makro möchte ich den Tabellenbereich dynamisch ermitteln. Da ich NULL Erfahrung mit Visual Basic habe, erstellte ich mein Makro einfach durch Aufzeichnen. Auf Basis eines Oracle-Exports hab ich also eine Tabelle erstellt. Nun möchte ich diese Tabelle als solche Formatieren und benennen. D.h. ich hab in Excel selbst einfach "als Tabelle formatieren" selektiert und das unten war der resultierende Bereich.

    Visual Basic-Quellcode

    1. ActiveSheet.ListObjects.Add(xlSrcRange, Range("$A$1:$O$44198"), , xlYes).Name _
    2. = "Tabelle1"


    Das funktioniert auch alles wunderbar. ABER: Wenn ich natürlich dann eine neue Datenbasis verwende, welche weniger oder mehr Reihen aufweist, dann wird die Tabellengrösse dennoch konstant auf den genannten Range eingegrenzt. Wie schaff ich es also, den Range dynamisch zu ermitteln? Die Spaltenanzahl bleibt immer gleich, aber die Reihen wechseln dynamisch.

    Und wenn ich eh grad am fragen bin:
    Wie schaff ich es, den Tabellen-Namen statt "Tabelle1" so zu erstellen, dass er idealerweise als Namen den des Registerblattes verwendet?
    Vielen Dank für eure Hilfe.
    Hallo cry.baby

    Herzlichen Dank! Der Befehl mit "CurrentRegion" hat super geklappt. Auch das benennen mit "ActiveSheet.name". Jetzt ist mein Makro aber natürlich bei der nächsten Zeile hängen geblieben, da es dort natürlich nach dem Namen "Tabelle1" sucht:

    Visual Basic-Quellcode

    1. Range("Tabelle1[#All]").Select
    2. ActiveSheet.ListObjects("Tabelle1").TableStyle = "TableStyleLight9"
    3. Range("F2").Select


    Kannst du mir ggf. nochmals weiterhelfen? wie kann ich beim selektieren nun den jeweils dynamisch generierten Tabellennamen ansprechen?

    Vielen Dank schon für deine Hilfe!