ich muss immer einzelene Makros rückgängig machen. Deswegen
habe in google gesucht und sogar was gefunden allerdings ist
das für Word:
http://groups.google.com/group/microsoft.public.word…
und im Word funktioniert es super. Aber in Excel leider nicht.
Hallo dnbma,
nach meiner Kenntnis geht das in Excel nicht so.
Grundsätzlich mußt du selbst Daten die du per Makro veränderst vorher irgendwie abspeichern mit dem gleichen Makro.
Dann kannst du das mit einem Gegen-makro wieder rückgängig machen.
Geht auch mit Bearbeiten–Rückgängig bzw. Strg+z wenn du im Makro OnUndo benutzt.
Schau mal hier, da hatte ich mal was gebastelt:
/t/rueckgaengig-machen-bei-vba-makros/2204260
Nachstehend ist ein Code von MichV(ypsilon) der OnUndo nicht benutzt sondern einfach nur „merkt“
Gruß
Reinhard
Private Sub CommandButton1\_Click()
If MsgBox("Änderungen des vorherigen Makroaufrufes rückgängig machen?", vbQuestion + vbYesNo, "Frage") = vbYes Then
Sollstunden\_April (True) 'Rückgängig machen
Else
Sollstunden\_April 'normal ausführen
End If
End Sub
Sub Sollstunden\_April(Optional Rückgängig As Boolean)
Static Merke(1 To 8) '8 ggf. anpassen! =Anzahl der Zellen, die Du Dir merken willst
If Not Rückgängig Then
If Not MsgBox("Soll das Makro ausgeführt werden?", vbQuestion + vbYesNo, "Frage") = vbYes Then Exit Sub
Merke(1) = Range("A1")
Range("A1") = Range("A2").Value
Merke(2) = Range("B1")
Range("B1") = Range("B2").Value
'usw.
'diese Zeilen musst Du an Deine Ansprüche anpassen
'wichtig ist, daß Du den Wert der sich ändernden Zelle
'vorher im Feld Merke() ablegst.
Else
If Not MsgBox("Sollen die Änderungen des Makros rückgängig gemacht werden?", vbQuestion + vbYesNo, "Frage") = vbYes Then Exit Sub
Range("A1") = Merke(1)
Range("B1") = Merke(2)
'usw.
'wieder anpassen. Hier werden die Werte aus dem Merke()-Feld
'wieder in die Zellen zurückgeschrieben.
End If
End Sub