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
Mit freundlichen Grüßen

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.
Mit freundlichen Grüßen

Mitness 43
Antworten Top


Gehe zu:


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