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

Forumthread: VBA: Tabellenblatt "zurücksetzen"

VBA: Tabellenblatt "zurücksetzen"
Christian
Bevor ich mein Makro aufrufe, möchte ich sicherstellen das alle Inhalte des benannten Tabellenblatts gelöscht und sämtliche Formatierungen entfernt sind.
Habe nichts gefunden, wie das geht.
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: VBA: Tabellenblatt "zurücksetzen"
23.11.2009 11:24:40
IngGi
Hallo Christian,
mit

Worksheets("Tabelle1").Cells.Delete
am Anfang des Makros werden alle Zellen von Tabelle1 gelöscht.
Gruß Ingolf
Das kann aber...
23.11.2009 11:36:29
{Boris}
Hi,
...für Formeln (so denn welche im Spiel sind) einige böse Effekte haben.
In diesem Fall besser nur Clear statt Delete.
Grüße Boris
Anzeige
AW: Das kann aber... oder auch so
23.11.2009 11:44:51
fcs
Hallo Christian,
dann werden auch Zeilen- und Spaltenhöhen auf Standardwerte zurückgesetzt.
Sub CleanSheet()
Dim wks As Worksheet
Set wks = Worksheets("Tabelle1")
With wks
'Inhalte und Formate der Zellen löschen
.Cells.Clear
'Spaltenbreiten zurücksetzen
.Columns.ColumnWidth = .StandardWidth
'Zeilenhöhen zurücksetzen
.Rows.AutoFit
End With
End Sub

Gruß
Franz
Anzeige
AW: Das kann aber... oder auch so
23.11.2009 16:40:46
Christian
Danke!
Habs nun auch gefunden. "Clear" funktioniert und bringt auch die Zeilenhöhe, die aufgrund einer grösseren Schrift höher wurde wieder auf die Normalhöhe
AW: VBA: Tabellenblatt "zurücksetzen"
23.11.2009 16:51:43
Christian
Habe das zuerst mit Clear gelöst und nur für den "UsedRange".
Ich weiss zwar nicht, ob das schneller und oder sinnvoller ist als
ThisWorkbook.Worksheets("Auswertung").Cells.Clear


ThisWorkbook.Worksheets("Auswertung").Activate
ActiveSheet.UsedRange.Clear

Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

VBA: Tabellenblatt zurücksetzen in Excel


Schritt-für-Schritt-Anleitung

Um ein Excel-VBA-Tabellenblatt zurückzusetzen und alle Inhalte sowie Formatierungen zu löschen, kannst Du die folgenden Schritte befolgen:

  1. Öffne die Excel-Datei und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu:

    • Klicke im Menü auf Einfügen und wähle Modul.
  3. Gib den folgenden Code ein, um das Tabellenblatt zu leeren:

    Sub CleanSheet()
       Dim wks As Worksheet
       Set wks = Worksheets("Tabelle1") ' Passe den Namen an
       With wks
           ' Inhalte und Formate der Zellen löschen
           .Cells.Clear
           ' Spaltenbreiten zurücksetzen
           .Columns.ColumnWidth = .StandardWidth
           ' Zeilenhöhen zurücksetzen
           .Rows.AutoFit
       End With
    End Sub
  4. Schließe den VBA-Editor und gehe zurück zu Excel.

  5. Führe das Makro aus: Gehe zu Entwicklertools > Makros, wähle CleanSheet aus und klicke auf Ausführen.


Häufige Fehler und Lösungen

  • Fehler: Makro wird nicht ausgeführt

    • Stelle sicher, dass die Makros aktiviert sind. Gehe zu Datei > Optionen > Trust Center > Einstellungen für das Trust Center und aktiviere Makros.
  • Fehler: Tabelle wird nicht geleert

    • Überprüfe den Namen des Arbeitsblatts in deinem Code. Stelle sicher, dass der Name in Worksheets("Tabelle1") korrekt ist.

Alternative Methoden

Eine andere Methode, um ein Excel-Tabellenblatt zurückzusetzen, ist die Verwendung von ClearContents und ClearFormats:

Sub ResetSheet()
    Dim wks As Worksheet
    Set wks = Worksheets("Tabelle1") ' Passe den Namen an
    With wks
        .Cells.ClearContents ' Nur Inhalte löschen
        .Cells.ClearFormats ' Nur Formatierungen löschen
    End With
End Sub

Diese Methode ist nützlich, wenn Du nur die Inhalte oder nur die Formatierungen zurücksetzen möchtest.


Praktische Beispiele

Wenn Du ein zusätzliches Tabellenblatt leeren möchtest, kannst Du den folgenden Code verwenden:

Sub ClearAnotherSheet()
    ThisWorkbook.Worksheets("Auswertung").Cells.Clear
End Sub

Verwende ActiveSheet.UsedRange.Clear, wenn Du nur den genutzten Bereich der Tabelle leeren möchtest:

Sub ClearUsedRange()
    ActiveSheet.UsedRange.Clear
End Sub

Tipps für Profis

  • Nutze Kommentare im Code, um den Überblick über Deine Makros zu behalten.
  • Teste Deine Makros immer in einer Kopie Deiner Datei, um Datenverlust zu vermeiden.
  • Verwende On Error Resume Next, um Fehler zu ignorieren und das Makro fortzusetzen, aber sei vorsichtig, da dies auch unerwünschte Nebenwirkungen haben kann.

FAQ: Häufige Fragen

1. Wie kann ich die Zellen in Excel benennen und die Benennung rückgängig machen?
Du kannst Zellen in Excel benennen, indem Du den Namen in das Namensfeld oben links neben der Formelzeile eingibst. Um die Benennung rückgängig zu machen, gehe zu Formeln > Namens-Manager und lösche den entsprechenden Namen.

2. Gibt es einen Unterschied zwischen Clear und Delete in VBA?
Ja, Clear entfernt den Inhalt und die Formatierungen der Zellen, während Delete die Zellen selbst entfernt und die Struktur des Arbeitsblattes verändert. Verwende Clear, wenn Du das Tabellenblatt leeren, aber die Struktur beibehalten möchtest.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige