Listobject.DataBody - bestimmte Anzahl Zeilen löschen
#1
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?

   

PS: Die Ergebniszeile sollte erhalten bleiben.

Liebe Grüße
Mitness 43
Antworten Top
#2
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).
[-] Folgende(r) 1 Nutzer sagt Danke an Mase für diesen Beitrag:
  • Mitness
Antworten Top
#3
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
[-] Folgende(r) 1 Nutzer sagt Danke an Egon12 für diesen Beitrag:
  • Mitness
Antworten Top
#4
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.
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste