wie kann man ein ausgeführtes Makro rückgänig machen. Also ein Undo einfügen oder so?
Gruß
mike49
Application.Undo
...wieder rückgängig machen.
Sub Rückgägig()
FName = ActiveWorkbook.FullName
Application.ScreenUpdating = False
Workbooks.Open Filename:=FName
Application.ScreenUpdating = True
End Sub
Sub Rückgägig()
FName = ActiveWorkbook.FullName
Application.ScreenUpdating = False
Workbooks.Open Filename:=FName
Application.ScreenUpdating = True
End Sub
Sub SortierenTitel()
Dim wksOriginal As Worksheet, wksSort As Worksheet
Dim wbk As Workbook
Dim lngZeileMax As Long, lngZeile As Long, intPos As Integer
Dim strBS As String
Set wbk = ActiveWorkbook
Set wksOriginal = ActiveSheet
Application.ScreenUpdating = False
'temporäres Blatt zum Sortieren anlegen
wbk.Worksheets.Add after:=wbk.Sheets(wbk.Sheets.Count)
Set wksSort = wbk.Sheets(wbk.Sheets.Count)
'Originaldaten in temporäres Blatt kopieren
With wksOriginal
lngZeileMax = .Cells(.Rows.Count, 1).End(xlUp).Row
.Range(.Cells(2, 1), .Cells(lngZeileMax, 3)).Copy _
Destination:=wksSort.Cells(1, 1)
.Range(.Cells(2, 5), .Cells(lngZeileMax, 7)).Copy _
Destination:=wksSort.Cells(1 * (lngZeileMax - 1) + 1, 1)
.Range(.Cells(2, 9), .Cells(lngZeileMax, 11)).Copy _
Destination:=wksSort.Cells(2 * (lngZeileMax - 1) + 1, 1)
End With
With wksSort
'Sortieren nach Titel
With .Range(.Cells(1, 1), .Cells(3 * (lngZeileMax - 2), 3))
.Sort Key1:=.Range("B1"), order1:=xlAscending, Header:=xlNo
End With
'nicht benutzte Zeilen löschen
.Range(.Cells(.Rows.Count, 1).End(xlUp), _
.Cells(.Rows.Count, 2).End(xlUp).Offset(1, 2)).ClearContents
'1. Buchstabe im Titel fett, wenn 1. Buchstabe wechselt
strBS = ""
For lngZeile = 1 To .Cells(.Rows.Count, 1).End(xlUp).Row
If strBS Left(.Cells(lngZeile, 2).Text, 1) Then
.Cells(lngZeile, 2).Characters(1, 1).Font.Name = "Arial Black"
strBS = Left(.Cells(lngZeile, 2).Text, 1)
End If
Next
'Daten wieder ins Original kopieren
.Range(.Cells(1, 1), .Cells(lngZeileMax - 1, 3)).Copy _
Destination:=wksOriginal.Cells(2, 1)
.Range(.Cells(1 * (lngZeileMax - 1) + 1, 1), .Cells(2 * (lngZeileMax - 1), 3)).Copy _
Destination:=wksOriginal.Cells(2, 5)
.Range(.Cells(2 * (lngZeileMax - 1) + 1, 1), .Cells(3 * (lngZeileMax - 1), 3)).Copy _
Destination:=wksOriginal.Cells(2, 9)
'temporäres Blatt wieder löschen
Application.DisplayAlerts = False
.Delete
Application.DisplayAlerts = True
End With
wksOriginal.Activate
Application.ScreenUpdating = True
End Sub
sub SortiereInNeuerTabelle()
dim wksNew as worksheet
sheets.add
set wksNew = activesheet
sheets("[URSPRUNGSTABELLE]").cells.copy
wksnew.range("A1").pastespecial
[DEIN SORTIERMAKRO, referenziert auf wksNew]
wksnew.print
wksnew.delete
end sub
Den Kniff mit dem wksNew braucht es eigentlich nicht, aber ich referenziere nur sehr ungerne auf "active sheet" ... da kann zu schnell was schief gehen.
Sub SortiereInNeuerTabelle()
Dim wksNew As Worksheet
Dim wksOld As Worksheet
Set wksOld = Sheets("Tabelle1") 'ANPASSEN
Sheets.Add
Set wksNew = ActiveSheet
wksOld.Cells.Copy
wksNew.Range("A1").PasteSpecial
SortierenTitel
wksNew.Print
application.displayalerts = false
wksNew.Delete
application.displayalerts = true
End Sub
Grüße,
Um ein Excel-Makro rückgängig zu machen, gibt es einige Ansätze. Beachte jedoch, dass die Funktion Application.Undo
nur für manuelle Aktionen in Excel funktioniert, nicht für Makros. Gehe folgendermaßen vor, um Änderungen in Excel rückgängig zu machen:
Makro erstellen: Öffne den VBA-Editor (Alt + F11) und erstelle ein neues Modul.
Code einfügen: Füge den folgenden Code in das Modul ein:
Sub Rückgängig()
FName = ActiveWorkbook.FullName
Application.ScreenUpdating = False
Workbooks.Open Filename:=FName
Application.ScreenUpdating = True
End Sub
Makro ausführen: Wenn du das Makro ausführst, wird die aktuelle Arbeitsmappe erneut geöffnet, was alle nicht gespeicherten Änderungen zurücksetzt.
Excel rückgängig geht nicht: Wenn du versuchst, ein Makro rückgängig zu machen, wird dies nicht funktionieren, da Excel keine Undo-Funktion für Makros bietet. Du kannst nur manuelle Änderungen mit Application.Undo
zurücksetzen.
Flackern des Bildschirms: Wenn dein Bildschirm während der Ausführung des Makros flackert, kannst du sicherstellen, dass Application.ScreenUpdating = False
zu Beginn des Makros gesetzt ist, und am Ende wieder auf True
zurückgesetzt wird.
Laufzeitfehler: Wenn du beim Ausführen des Makros auf einen Laufzeitfehler stößt, überprüfe, ob das aktive Blatt oder die verwendeten Objekte korrekt referenziert sind.
Es gibt alternative Methoden, um Änderungen in Excel rückgängig zu machen:
Manuelles Speichern: Speichere häufig unter verschiedenen Dateinamen, um jederzeit zu einer früheren Version zurückzukehren.
Kopieren in ein neues Blatt: Erstelle ein neues Blatt, kopiere die Daten dorthin und bearbeite das neue Blatt, während das Original unverändert bleibt.
VBA-Prozeduren: Schreibe VBA-Prozeduren, die spezifische Änderungen zurücksetzen, anstatt das gesamte Arbeitsblatt neu zu laden.
Um den ursprünglichen Zustand eines Arbeitsblattes wiederherzustellen, könntest du den folgenden Code verwenden:
Sub SortiereInNeuerTabelle()
Dim wksNew As Worksheet
Dim wksOld As Worksheet
Set wksOld = Sheets("Tabelle1") ' ANPASSEN
Sheets.Add
Set wksNew = ActiveSheet
wksOld.Cells.Copy
wksNew.Range("A1").PasteSpecial
' Hier kannst du dein Sortiermakro aufrufen
' SortierenTitel
' wksNew.PrintOut ' Kommentar entfernen, um das Blatt zu drucken
Application.DisplayAlerts = False
wksNew.Delete
Application.DisplayAlerts = True
End Sub
Dieses Makro kopiert die Daten von „Tabelle1“ in ein neues Blatt, wo du die Änderungen vornehmen kannst, ohne das Original zu beeinflussen.
Versionierung: Nutze die Funktion „Speichern unter“, um verschiedene Versionen deiner Datei zu sichern. So kannst du bei Bedarf auf ältere Versionen zurückgreifen.
Makro-Optimierung: Minimiere die Bildschirmaktualisierungen während der Ausführung von Makros, indem du Application.ScreenUpdating = False
verwendest.
Fehlerbehandlung: Implementiere in deinen Makros Fehlerbehandlungsroutinen, um unerwartete Laufzeitfehler abzufangen und den Benutzer zu informieren.
1. Kann ich ein ausgeführtes Makro rückgängig machen?
Nein, Excel bietet keine Möglichkeit, Makros rückgängig zu machen. Du kannst nur manuelle Änderungen zurücksetzen.
2. Wie kann ich Änderungen in Excel rückgängig machen?
Verwende die Funktion Application.Undo
für manuelle Eingaben oder speichere regelmäßig, um auf vorherige Versionen zurückzugreifen.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen