Clever-Excel-Forum

Normale Version: Listobject.DataBody - bestimmte Anzahl Zeilen löschen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Guten Tag liebe Community,

ich würde gerne nachdem ich den Befehl DataBody.ClearContents ausgeführt habe, die Anzahl an Zeilen des "DataBodys" auf 3 bzw. X setzen.
Wie bekomme ich das hin?

[attachment=40044]

PS: Die Ergebniszeile sollte erhalten bleiben.

Liebe Grüße
Mitness 43
Moin,

warum .ClearContents und dann Zeilen löschen?


.DataBodyRange.Rows.Delete löscht alle Zeilen.

.DataBodyRange.Rows("3:5").Delete löscht bspw. Zeilen 3 bis 5.

.DataBodyRange.Rows.Count liefert Dir die Anzahl Zeilen des Datenbereichs.

.DataBodyRange.Rows("3:" & .DataBodyRange.Rows.Count).Delete löscht Dir von Zeile 3 bis Ende (variabel).
Hallo Mitness,

mach es so:
Code:
Option Explicit

Sub test()
Dim delStart As Long, delEnd As Long, i As Long

delStart = 3
delEnd = 200
    For i = delStart To delEnd
        Tabelle1.ListObjects("Tabelle1").ListRows(delStart).Delete
    Next i

End Sub
Gruß Uwe
Vielen Dank euch beiden für die hilfreichen Beiträge. 23

Meine finale Lösung sieht nun so aus:

Code:
Sub tblClearAndShrink()
Dim tbl As ListObject
Dim delEnd As Integer

Set tbl = wsInput.ListObjects("Tabelle4")
delEnd = tbl.DataBodyRange.Rows.Count
tbl.DataBodyRange.ClearContents
If delEnd <= 4 Then
Else
    tbl.DataBodyRange.Rows("4:" & delEnd).Delete
End If

End Sub

Die If-Abfrage habe ich mit reingeommen, da bei wiederholten Ausführen von .Delete, die Tabelle um mehr als die verbleibenden drei Zeilen gelöscht wurde.