Hallo Flodnug,
Eine Rückgängig-Funktion für jeden einzelnen Befehl ist nicht vorgesehen. Das würde bei großen Makros zu erheblichen Laufzeitverzögerungen, unnötig belegten Arbeitsspeicher und Problemen mit den Grenzen der Rückgängig-Liste führen.
Das Beste was ich dir anbieten kann, ist folgendes Makro:
Dim swb As String, wb As Workbook 'steht ganz oben im Modul
Sub test() 'führt den Code deines Buttons aus
Sicherheitspfad = "E:\Meinpfad\MeinUnterpfad\" 'das letzte Zeichen muss "\" sein!
Set wb = ActiveWorkbook 'hier dein Workbook angeben.
'speichert den derzeitigen Stand der Datei in einer Sicherheitskopie ab.
swb = Sicherheitspfad & "Kopie von " & wb.Name
Application.DisplayAlerts = False
wb.SaveCopyAs swb
Application.DisplayAlerts = True
'ab hier dein Code
'...
'dein Code bis hier
'legt in der Rückgängig-Liste einen Eintrag an, der auf ein anderes
'Makro verweist, welches die gespeicherte Dateikopie öffnet.
Application.OnUndo "Makro", "Rueckgaengig" 'letzter Befehl im Code
End Sub
Sub Rueckgaengig()
On Error Resume Next
Workbooks.Open swb
wb.Close False
End Sub
Probiers mal aus. In meiner alten Excel-Version klappts prima. Wie verhält es sich bei dir?
Gruß Mr. K.