Excel VBA Tutorial: Inhalte löschen, Formeln behalten (Tabellenblatt zurücksetzen)

Melden

Hier ist ein ausführliches Tutorial, wie du in Excel mithilfe von VBA-Makros ein Tabellenblatt zurücksetzen kannst, ohne dabei deine wichtigen Formeln zu löschen.


In vielen Excel-Anwendungen (wie Rechnungsformularen, Kalkulationstools oder monatlichen Reports) möchte man die eingegebenen Daten per Knopfdruck löschen, um das Blatt für eine neue Eingabe vorzubereiten. Das Problem: Ein einfaches "Entfernen" löscht oft auch die mühsam erstellten Formeln.

Mit diesem VBA-Makro automatisierst du den Prozess und stellst sicher, dass nur die manuellen Eingaben verschwinden.


Schritt 1: Die Registerkarte „Entwicklertools“ aktivieren

Falls du sie noch nicht siehst, musst du die Entwicklertools einblenden:

  1. Klicke mit der rechten Maustaste auf ein beliebiges Menüband (z.B. „Start“).
  2. Wähle Menüband anpassen....
  3. Setze im rechten Fenster den Haken bei Entwicklertools.
  4. Bestätige mit OK.

Schritt 2: Den VBA-Editor öffnen

  1. Gehe auf die Registerkarte Entwicklertools.
  2. Klicke ganz links auf Visual Basic (oder drücke ALT + F11).
  3. Klicke im Menü des Editors auf Einfügen -> Modul.
  4. Ein leeres weißes Fenster erscheint. Hier kopierst du den Code hinein.

Schritt 3: Der VBA-Code

Kopiere den folgenden Code in das Modul-Fenster:

Sub TabellenblattZuruecksetzen()
    ' Deklaration des Bereichs
    Dim Bereich As Range

    ' Fehlerbehandlung: Falls keine Konstanten gefunden werden, stürzt das Makro nicht ab
    On Error Resume Next

    ' Festlegen, welcher Bereich bereinigt werden soll (hier: das aktive Blatt)
    ' xlCellTypeConstants steht für alle Zellen mit Werten, aber OHNE Formeln.
    Set Bereich = Cells.SpecialCells(xlCellTypeConstants)

    ' Sicherheitsabfrage (Optional)
    If MsgBox("Möchten Sie alle Eingaben löschen? Formeln bleiben erhalten.", vbQuestion + vbYesNo, "Inhalte löschen") = vbNo Then
        Exit Sub
    End If

    ' Die Inhalte der gefundenen Zellen löschen
    If Not Bereich Is Nothing Then
        Bereich.ClearContents
        MsgBox "Das Tabellenblatt wurde zurückgesetzt!", vbInformation, "Erfolg"
    Else
        MsgBox "Keine manuellen Eingaben zum Löschen gefunden.", vbExclamation, "Hinweis"
    End If

    On Error GoTo 0
End Sub

Was macht dieser Code?

  • SpecialCells(xlCellTypeConstants): Dies ist das Herzstück. Es markiert nur Zellen, die Text oder Zahlen enthalten, die nicht durch eine Formel berechnet werden.
  • On Error Resume Next: Verhindert eine Fehlermeldung, falls das Blatt bereits leer ist.
  • ClearContents: Löscht die Werte, behält aber Formatierungen (Farben, Rahmen) bei.

Schritt 4: Einen Button erstellen

Damit das Makro leicht bedienbar ist, erstellen wir eine Schaltfläche:

  1. Gehe in Excel auf Einfügen -> Illustrationen -> Formen.
  2. Zeichne ein Rechteck oder einen abgerundeten Button auf dein Tabellenblatt.
  3. Klicke mit der rechten Maustaste auf die Form und wähle Makro zuweisen....
  4. Wähle TabellenblattZuruecksetzen aus und klicke auf OK.
  5. Du kannst die Form jetzt beschriften (z.B. "Blatt leeren").

Schritt 5: Die Datei richtig speichern

Da die Datei nun ein Makro enthält, kannst du sie nicht als normale .xlsx speichern.

  1. Gehe auf Datei -> Speichern unter.
  2. Wähle als Dateityp Excel-Arbeitsmappe mit Makros (.xlsm).

Profi-Tipp: Bestimmte Bereiche schützen

Falls du nur einen bestimmten Bereich (z.B. nur die Zellen B5 bis F20) löschen willst, ändere die Zeile im Code wie folgt:

Statt: Set Bereich = Cells.SpecialCells(xlCellTypeConstants)

Schreibe: Set Bereich = Range("B5:F20").SpecialCells(xlCellTypeConstants)

Zusammenfassung

Mit der Methode SpecialCells(xlCellTypeConstants) hast du den sichersten Weg gewählt, um Daten von Logik zu trennen. Deine Formeln sind sicher, während deine Eingabemasken mit einem Klick wieder wie neu aussehen!

0