Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Makro für Schaltfläche (Löschen/Wiederherstellen)

Forumthread: Makro für Schaltfläche (Löschen/Wiederherstellen)

Makro für Schaltfläche (Löschen/Wiederherstellen)
24.02.2004 19:38:56
Max K.
Hallo,
vielleicht gibt es ja eine Lösung, wie man perMakro einen ganzen Bereich über mehrere Zeilen nicht nur verschwinden, sondern auch wiederherstellen läßt.
Mit dem Verschwinden klappt es ja prima, aber wie geht es wieder zurück?
Da mir eine "Undo"-Funktion fehlt, frißt Excel bei jedem neuen Knopfdruck erneut den nunmehr aufgefüllten Bereich.
Die Zellen um die es geht: A85 bis K90. In dem Bereich befinden sich allerdings
auch Zellen mit Formeln.
Mein Makro sieht z.Zt. so aus:

Sub Zellen_löschen_wiederherstellen()
' Zellen_löschen_wiederherstellen Makro
' Makro am 24.02.2004 von . aufgezeichnet
Range("A85:K90").Select
Selection.Delete Shift:=xlUp
End Sub

Was muß da noch rein, damit bei erneutem Knopfdruck der Bereich wiederhergestellt wird (mit den Formeln)?
Im Voraus schon mal Dank für eure Hilfe.
Gruß
Max
Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro für Schaltfläche (Löschen/Wiederherstell
24.02.2004 19:45:29
ChrisL
Hi Max
Rückgängig resp. Undo geht nicht wie du schon selber festgestellt hast.
a) eine Abfrage einbauen, "Wollen Sie wirklich löschen?"
b) vom Bereich erst eine Sicherheitskopie erstellen und dann ein quasi Undo-Makro erstellen.
Gruss
Chris
AW: Makro für Schaltfläche (Löschen/Wiederherstell
24.02.2004 20:22:22
Max K.
Hallo Chris,
vielen Dank für deine Antwort!
Ein weiterer Schalter ist allerdings für die Anwender der Tabelle schon zuviel.
Muß mal sehen wie ich eine einfache Lösung finde....
Gruß
Max
Anzeige
AW: Makro für Schaltfläche (Löschen/Wiederherstell
24.02.2004 22:32:31
Josef Ehrensberger
Hallo Max!
Probier mal das!


'######################################################################
'#              Zellen löschen mit Rückgängig - Funktion              #
'#               Benötigt wird ein CommandButton aus der              #
'#         Steuerelemente-Toolbox, mit dem Namen CommandButton1       #
'#                und der Beschriftung (Caption) "Löschen"            #
'######################################################################

'Allgemeines Modul (Modul1)################################
Option Explicit
Public varArr As Variant
'##########################################################

'Modul des Tabellenblattes#################################
Option Explicit
Private Sub CommandButton1_Click()
If CommandButton1.Caption = "Löschen" Then
varArr = Range("A85:K90").FormulaLocal
Range("A85:K90").Delete
CommandButton1.Caption = "Rückgängig"
Else
Range("A85:K90").FormulaLocal = varArr
CommandButton1.Caption = "Löschen"
End If
End Sub
'##########################################################

     Code eingefügt mit Syntaxhighlighter 2.5

Gruß Sepp


Ein kluger Mann macht nicht alle Fehler selbst.
Er lässt auch anderen eine Chance.

(Sir Winston Churchill)


Anzeige
AW: Makro für Schaltfläche (Löschen/Wiederherstell
25.02.2004 20:27:30
Max K.
Hallo Sepp,
"Ein kluger Mann macht nicht alle Fehler selbst." Ich noch....;-))
Da meine Kenntnisse in VBA beschränkt sind, sieh dir bitte mal das Bild an. Soweit bin ich. Modul 1 sieht allerdings etwas "dünn" aus und beim Anklicken des Button wird der
"Range("A85:K90").Delete"-Eintrag gelb markiert.
Userbild
Was fehlt noch bzw. was muß ich noch eintragen?
Danke erstmal für deine Hilfe und deine Geduld!
Gruß
Max
Anzeige
AW: Makro für Schaltfläche (Löschen/Wiederherstell
25.02.2004 20:50:02
Josef Ehrensberger
Hallo Max!
Kann keinen Fehler entdecken!
Sind die Zellen vielleicht gesperrt und das Tabellenblatt gschützt?

Gruß Sepp


Ein kluger Mann macht nicht alle Fehler selbst.
Er lässt auch anderen eine Chance.

(Sir Winston Churchill)


Anzeige
AW: Makro für Schaltfläche (Löschen/Wiederherstell
25.02.2004 21:44:03
Max K.
Hallo Sepp,
im Original sind in dem Textbereich einige Zellen wegen Formelinhaltes gesperrt. Ich habe aber gerade mal ein völlig neues Tabellenblatt in dem Zellbereich beschriftet, Button eingefügt.
Es gibt den gleichen Fehler (s. Bild).
Userbild

Da ich heute früh in die Kiste muß :-)) kann ich dir leider erst morgen antworten, falls
dir noch etwas einfällt. Falls nicht, muß ich per Formeln einige Textpassagen mit WENN
ändern oder umschreiben. Man gönnt sich ja sonst nichts.
Ich darf mich bis hier schon mal bei dir bedanken und dir noch einen schönen Abend wünschen.
Gruß
Max
Anzeige
AW: Makro für Schaltfläche (Löschen/Wiederherstell
25.02.2004 22:46:50
Josef Ehrensberger
Hallo Max!
Ich kann den Fehler bei mir leider nicht reproduzieren,
der Code läuft problemlos!
Probier mal folgende Alternativen für die Zeile die die
Fehlermeldung verursacht.


Me.Range("A85:K90").Delete
'oder
Me.Range("A85:K90").Cells.Delete
'oder
Range("A85:K90").Clear
'oder
Range("A85:K90").ClearContents

     Code eingefügt mit Syntaxhighlighter 2.5

Gruß Sepp


Ein kluger Mann macht nicht alle Fehler selbst.
Er lässt auch anderen eine Chance.

(Sir Winston Churchill)


Anzeige
AW: Makro für Schaltfläche (Löschen/Wiederherstell
26.02.2004 18:59:55
Max K.
Hallo Sepp,
vielen Dank für deine Hilfe und deine Geduld! Super!
Ich hoffe du bist nicht traurig, daß du damit (vorerst) einen Kunden weniger hast ;-))
Mit
Range("A85:K90").Clear
oder
Range("A85:K90").ClearContents
klappt es auch bei mir. Um ehrlich zu sein, "Clear" klingt auch schöner wie "Delete" :-))
So gut wie das Teil jetzt funktioniert, werde ich es mir als Muster gut weglegen.
Nochmals Danke und noch einen schönen Abend!
Gruß
Max
Anzeige
Danke für die Rückmeldung! o.T.
26.02.2004 19:07:55
Josef Ehrensberger
Gruß Sepp

Ein kluger Mann macht nicht alle Fehler selbst.
Er lässt auch anderen eine Chance.

(Sir Winston Churchill)


;
Anzeige

Infobox / Tutorial

Makro für Schaltfläche zum Löschen und Wiederherstellen in Excel


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und stelle sicher, dass du ein neues oder bestehendes Arbeitsblatt hast.

  2. Füge einen CommandButton hinzu:

    • Gehe zu „Entwicklertools“ > „Einfügen“ > „CommandButton (ActiveX-Steuerelement)“.
    • Ziehe den Button auf dein Arbeitsblatt und benenne ihn in den Eigenschaften zu „Löschen“.
  3. Füge den VBA-Code ein:

    • Klicke mit der rechten Maustaste auf den Button und wähle „Code anzeigen“.
    • Füge den folgenden Code ein:
    Option Explicit
    Public varArr As Variant
    
    Private Sub CommandButton1_Click()
       If CommandButton1.Caption = "Löschen" Then
           varArr = Range("A85:K90").FormulaLocal
           Range("A85:K90").Delete
           CommandButton1.Caption = "Rückgängig"
       Else
           Range("A85:K90").FormulaLocal = varArr
           CommandButton1.Caption = "Löschen"
       End If
    End Sub
  4. Teste das Makro:

    • Klicke auf den Button, um die Zellen zu löschen, und erneut, um sie wiederherzustellen.

Häufige Fehler und Lösungen

  • Fehler beim Löschen der Zellen:

    • Wenn du die Fehlermeldung erhältst, dass die Zellen geschützt sind, stelle sicher, dass das Tabellenblatt nicht geschützt ist. Du kannst das Blatt entsperren, indem du zu „Überprüfen“ > „Blattschutz aufheben“ gehst.
  • Makro funktioniert nicht:

    • Achte darauf, dass der Button den richtigen Namen hat (z.B. „CommandButton1“) und dass der Code korrekt eingefügt wurde.
  • Rückgängig-Funktion nicht aktiv:

    • Statt „Delete“ kannst du Clear oder ClearContents verwenden, um die Zellen zu leeren, ohne die Formatierung zu verlieren.

Alternative Methoden

  • Excel gelöschte Zeilen wiederherstellen:

    • Wenn du nur Zeilen löschen möchtest, kannst du den Befehl Range("A85:K90").Rows.Delete verwenden.
  • Excel gelöschte Tabellenblätter wiederherstellen:

    • Um ein gelöschtes Tabellenblatt wiederherzustellen, gehe in die „Datei“ > „Informationen“ > „Vorherige Versionen“ und wähle eine frühere Version aus.
  • Excel gelöschtes Blatt wiederherstellen:

    • Wenn du versehentlich ein ganzes Blatt gelöscht hast, kannst du es unter „Datei“ > „Öffnen“ > „Zuletzt verwendete Dateien“ suchen und die letzte Version öffnen.

Praktische Beispiele

Um die Verwendung des Makros zu veranschaulichen, hier ein Beispiel:

  • Beispiel 1: Du hast eine Tabelle mit Daten in den Zellen A85 bis K90. Nach dem Klicken auf den Button „Löschen“ verschwinden die Daten, und beim erneuten Klicken werden sie mit den ursprünglichen Formeln wiederhergestellt.

  • Beispiel 2: Du möchtest mehrere Bereiche gleichzeitig ausblenden und wiederherstellen. Du kannst Variablen für mehrere Bereiche erstellen und die Logik in der Schaltfläche anpassen.


Tipps für Profis

  • Sichere deine Daten: Bevor du ein Makro ausführst, erstelle immer eine Sicherheitskopie des Arbeitsblatts.
  • Nutze Kommentare im Code: Füge Kommentare in deinen VBA-Code ein, um die Funktionalität zu erklären, besonders wenn du mit anderen zusammenarbeitest.
  • Verwende die „Undo“-Funktion: Da Excel eine native Rückgängig-Funktion nicht für Makros bietet, kannst du die vorherigen Werte in einer Variablen speichern, wie im obigen Beispiel gezeigt.

FAQ: Häufige Fragen

1. Wie kann ich gelöschte Spalten wiederherstellen? Du kannst gelöschte Spalten mit der „Rückgängig“-Funktion (Strg + Z) wiederherstellen, solange du das Arbeitsblatt nicht gespeichert hast, oder indem du eine vorherige Version des Dokuments öffnest.

2. Funktioniert das Makro in allen Excel-Versionen? Der bereitgestellte Code sollte in den meisten neueren Excel-Versionen (ab Excel 2010) funktionieren. Stelle sicher, dass die Entwicklertools aktiviert sind.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige