Wie kann man per Listobject die erste Zeile von Tabelle auf Arbeitsblatt ansteuern! (Code verkürzen)

  • Excel

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Novazizo|Sabrina.

    Wie kann man per Listobject die erste Zeile von Tabelle auf Arbeitsblatt ansteuern! (Code verkürzen)

    Hallo Community,

    die Überschrift ist auch gleichzeitig meine Frage:

    Habe auf einem Arbeitsblatt eine Tabelle liegen. Die erste Zeile (nicht die Überschrift) ist in Zeile 16.

    Momentan steuer ich diese Zeile mit diesem Code an:

    Visual Basic-Quellcode

    1. Sheets(1).Cells(16, 1)


    Das Problem ist, falls sich die Tabelle verschiebt (weil jemand eine Zeile oberhalb einfügt) stimmt die Ansteuerung der ersten Zeile nicht.

    Ich hoffe ihr konntet mir folgen und freu mich auf eure Antworten.

    MfG
    No!

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Novazizo|Sabrina“ ()

    Hallo petaod,

    vielen Dank für die schnelle Antwort.
    Möchte es mit Listobject machen...
    Trotzdem Vielen Dank für die Hilfe

    Mit diesem Code markiere ich die erste Zelle in der Tabelle und ermittel die aktive Zeile...

    Visual Basic-Quellcode

    1. bla = ActiveWorkbook.Worksheets("MeinArbeitsblatt").ListObjects("MeineTabelle").Range.Cells(2, 1).Select
    2. bla = ActiveCell.Row
    3. MsgBox bla


    Kann man das noch verkürzen?

    Beste Grüße
    No!

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „Novazizo|Sabrina“ () aus folgendem Grund: Neue Erkenntnisse

    Novazizo|Sabrina schrieb:

    Kann man das noch verkürzen?

    Ja, kann man.

    Visual Basic-Quellcode

    1. HeaderRow = ThisWorkbook.Worksheets("MeinArbeitsblatt").ListObjects("MeineTabelle").Range.Cells(2, 1).Row
    Aber viel wichtiger:
    Arbeite NIE mit Select, und wenn möglich, auch nicht mit ActiveIrgendwas
    Das sind Relikte, die der Macrorecorder gerne verwendet, aber in eine saubere Programmierung nicht hineingehören.
    Arbeite immer mit den Objekten und weise sie frühestmöglich zu, wenn du sie später wiederverwenden willst.
    Beispiel:

    Visual Basic-Quellcode

    1. Set MyWorkbook=Workbooks.Open ("c:\MyWorkbook.xlsx")
    2. Set MySheet=MyWorkbook.Worksheets("MeinArbeitsblatt")
    3. Set MyTableRange=MySheet.ListObjects("MeineTabelle").Range
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --