Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA Tabellenlänge ermitteln

VBA Tabellenlänge ermitteln
24.03.2018 19:26:20
AlterDresdner
Liebe Gemeinde,
wie bitte kann ich per VBA die letzte Zeile einer 'intelligenten' Tabelle ermitteln?
.ListObjects(Tabelle4).?
Ändern geht, will ich aber eigentlich nicht.
Danke für die Hilfe
Gruß der ALteDresdner
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tbl.DatabodyRange.Address
24.03.2018 20:16:34
Fennek
Hallo,
als Vorbereitung geht:

dim Tbl as Listobject
set Tbl = activesheet.Listobjects(1)
debug.print Tbl.DatabodyRange.Address
Mit etwas String-Zerlegung kann man daraus die letzte Zeile ableiten.
Es gibt auch Tbl.Range.rows.count und tbl.HeaderRowRange.row.
mfg
Anzeige
AW: Tbl.DatabodyRange.Address
24.03.2018 20:47:07
AlterDresdner
Hallo Fennek,
danke dafür. Mit .range.rows.count geht es perfekt.
Gruß der ALteDresdner
;
Anzeige
Anzeige

Infobox / Tutorial

VBA Tabellenlänge ermitteln


Schritt-für-Schritt-Anleitung

Um die letzte Zeile einer intelligenten Tabelle in Excel mit VBA zu ermitteln, kannst Du die folgende Schritt-für-Schritt-Anleitung befolgen:

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den VBA-Editor in Excel zu öffnen.

  2. Erstelle ein neues Modul: Klicke im Projekt-Explorer mit der rechten Maustaste auf dein Projekt und wähle Einfügen > Modul.

  3. Füge den folgenden Code ein:

    Sub LetzteZeileErmitteln()
       Dim Tbl As ListObject
       Set Tbl = ActiveSheet.ListObjects(1) ' Wähle die erste intelligente Tabelle
       Dim letzteZeile As Long
       letzteZeile = Tbl.DatabodyRange.Rows.Count + Tbl.HeaderRowRange.Row
       Debug.Print "Die letzte Zeile ist: " & letzteZeile
    End Sub
  4. Führe das Makro aus: Drücke F5 oder klicke auf Ausführen, um das Makro zu starten und die letzte Zeile in der Debug-Ausgabe zu sehen.


Häufige Fehler und Lösungen

  • Fehler: "Objekt nicht gefunden"

    • Lösung: Stelle sicher, dass Du eine intelligente Tabelle in deinem aktiven Arbeitsblatt hast. Ansonsten wird das Objekt nicht gefunden.
  • Fehler: Falsche Zeilenanzahl

    • Lösung: Achte darauf, dass Du Tbl.HeaderRowRange.Row korrekt einsetzt, um die Gesamtanzahl der Zeilen zu berechnen.

Alternative Methoden

Falls Du eine andere Methode bevorzugst, um die Anzahl der Zeilen einer intelligenten Tabelle zu ermitteln, kannst Du auch die ListObjects-Eigenschaft direkt verwenden:

Sub AnzahlZeilenErmitteln()
    Dim Tbl As ListObject
    Set Tbl = ActiveSheet.ListObjects(1)
    Dim anzahlZeilen As Long
    anzahlZeilen = Tbl.DatabodyRange.Rows.Count
    Debug.Print "Anzahl der Zeilen: " & anzahlZeilen
End Sub

Diese Methode gibt Dir die Anzahl der Zeilen in der DatabodyRange zurück, ohne die Header-Zeile zu berücksichtigen.


Praktische Beispiele

Hier sind einige praktische Beispiele, wie Du die DatabodyRange in verschiedenen Kontexten verwenden kannst:

  1. Anzahl der Zeilen in einer bestimmten Tabelle ermitteln:

    Sub AnzahlZeilenBestimmteTabelle()
       Dim Tbl As ListObject
       Set Tbl = ActiveSheet.ListObjects("DeineTabelle") ' Ersetze "DeineTabelle" durch den Namen deiner Tabelle
       Dim anzahlZeilen As Long
       anzahlZeilen = Tbl.DatabodyRange.Rows.Count
       MsgBox "Die Tabelle hat " & anzahlZeilen & " Zeilen."
    End Sub
  2. Letzte Zeile einer Tabelle in einer Variablen speichern:

    Sub LetzteZeileSpeichern()
       Dim Tbl As ListObject
       Set Tbl = ActiveSheet.ListObjects(1)
       Dim letzteZeile As Long
       letzteZeile = Tbl.DatabodyRange.Rows.Count + Tbl.HeaderRowRange.Row
       ' Hier kannst Du die letzte Zeile weiterverarbeiten
    End Sub

Tipps für Profis

  • Nutze die ListObjects-Eigenschaft, um gezielt auf verschiedene intelligente Tabellen in Deinem Arbeitsblatt zuzugreifen.
  • Verwende die Debug.Print-Anweisung, um Deine Ergebnisse während der Entwicklung zu überprüfen, bevor Du sie in einer Benutzeroberfläche anzeigst.
  • Berücksichtige, dass die DatabodyRange nur für ListObjects verfügbar ist, die tatsächlich Daten enthalten.

FAQ: Häufige Fragen

1. Wie kann ich die letzte Zeile einer bestimmten intelligenten Tabelle ermitteln?
Du kannst die Tabelle anhand ihres Namens ansprechen, indem Du ActiveSheet.ListObjects("Tabellenname") verwendest.

2. Was ist der Unterschied zwischen DatabodyRange und HeaderRowRange?
DatabodyRange bezieht sich auf den Bereich der Daten, während HeaderRowRange die Kopfzeile der Tabelle darstellt.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige