Registriert seit: 30.01.2021
Version(en): Office 365
03.09.2021, 08:46
(Dieser Beitrag wurde zuletzt bearbeitet: 03.09.2021, 08:47 von Mitness.)
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
Mit freundlichen Grüßen
Mitness
Registriert seit: 17.04.2019
Version(en): M$ 365 AfE v2009 / Office2013
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:1 Nutzer sagt Danke an Mase für diesen Beitrag 28
• Mitness
Registriert seit: 16.08.2020
Version(en): 2019 64bit
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:1 Nutzer sagt Danke an Egon12 für diesen Beitrag 28
• Mitness
Registriert seit: 30.01.2021
Version(en): Office 365
Vielen Dank euch beiden für die hilfreichen Beiträge.
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