Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

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).
gruß
Marco
[-] 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