Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1904to1908
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

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.

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

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
Anzeige
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?
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
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

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige