Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Zelleninhalt per Schleife löschen

Zelleninhalt per Schleife löschen
15.11.2022 20:47:31
Romy
Hallo
Ich habe mir mit meinen bescheidenen Kenntnissen und bisherigen Lernerfahren den folgenden Code zusammengeschrieben:

Sub InhaltLoeschen()
Dim ws, i As Integer
Dim tbl As ListObject
For ws = 1 To 12
For Each tbl In ThisWorkbook.Sheets(ws).ListObjects
For i = 3 To 33
tbl.ListColumns(i).DataBodyRange.ClearContents
Next i
Next tbl
Next ws
End Sub
Dieser soll bewirken das auf den ersten 12 Tabellenblätter der Arbeitsmappe in jeder dort vorhandenen intilligenten Tabelle der Zelleninhalt der Spalten 3 bis 33 ohne die Kopf- und Ergebniszelle gelöscht wird. Wenn ich den Code ausführe, wird mir eine Fehlermeldung angezeigt. Ich bitte um Unterstützung.
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zelleninhalt per Schleife löschen
15.11.2022 21:15:06
JoWE
Hallo,
Du kannst Dir nicht vorstellen, dass es für uns hilfreich wäre die Fehlermeldung zu kennen?
Noch hilfreicher wäre es eine Beispiel-Arbeitsmappe hochzuladen.
Gruß
Jochen
AW: Zelleninhalt per Schleife löschen
15.11.2022 21:16:11
Uduuh
Hallo,
die For i=...-Schleife ist überflüssig

Sub InhaltLoeschen()
Dim ws, i As Integer
Dim tbl As ListObject
For ws = 1 To 12
For Each tbl In ThisWorkbook.Sheets(ws).ListObjects
tbl.DataBodyRange.ClearContents
Next tbl
Next ws
End Sub

Anzeige
AW: Zelleninhalt per Schleife löschen
15.11.2022 21:22:35
GerdL
Hallo Romy,
welche Fehlermeldung in welcher Codezeile?
Falls nicht jedes Tabellchen 33 Spalten hat:
For i = 3 To tbl.ListColumns.Count
Gruß Gerd
AW: Zelleninhalt per Schleife löschen
16.11.2022 09:31:56
Romy
Danke für die bisherigen Antworten. Laufzeitfehler 9. Und manchmal bemerkt man das offensichtliche nicht. In jedem der 12 Arbeitsblätter ist als erstes eine intelligente Tabelle mit nur 7 Spalten. Bei dieser möchte ich den Zellinhalt auch nicht löschen. Wie kann ich der for each Anweisungen mitteilen, das die erste Tabelle auf jedem Arbeitsblatt „übersprungen“ werden soll?
Anzeige
AW: Zelleninhalt per Schleife löschen
16.11.2022 10:01:35
GerdL
Hallo Romy,
teste mal.

Sub InhaltLoeschen()
Dim ws As Integer
Dim tbl As ListObject
For ws = 1 To 12
For Each tbl In ThisWorkbook.Worksheets(ws).ListObjects
If tbl.ListColumns.Count > 7 Then
tbl.ListColumns(3).DataBodyRange.Resize(, 34).ClearContents
End If
Next tbl
Next ws
End Sub
Gruß Gerd
Anzeige
AW: Zelleninhalt per Schleife löschen
16.11.2022 20:13:30
Romy
Hallo Gerd, die Anpassungen funktionieren schon fast. Ich habe nun endlich auch die Zeit gefunden, die Datei an zupassen und als Beispiel hochzuladen: https://www.herber.de/bbs/user/156219.xlsm
Aktuelles Problem beim Code ist, das er auch in der ersten intelligenten Tabelle auf jedem Arbeitsblatt Daten ab der 3 Spalte löscht. Jedoch soll er die Daten in diesen Tabellen nicht löschen.
Romy
Anzeige
AW: Zelleninhalt per Schleife löschen
18.11.2022 14:44:22
GerdL
Hallo Romy!

Sub InhaltLoeschenX()
Dim ws As Integer
Dim tbl As ListObject
For ws = 1 To ThisWorkbook.Worksheets.Count
For Each tbl In ThisWorkbook.Worksheets(ws).ListObjects
If Not tbl.Name Like "MA*" Then
tbl.ListColumns(3).DataBodyRange.Resize(, 34).ClearContents
End If
Next tbl
Next ws
End Sub
Gruß Gerd
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige