Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1128to1132
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Rückgängig Button nach Worksheet_Change

Rückgängig Button nach Worksheet_Change
Chris
Hi,
habe in einem Sheet u.a. ein Worksheet_Change Makro laufen, das bestimmte Werte in bestimmte Zeilen kopiert.
Nachdem ich in dem Sheet ein paar Eingaben gemacht habe, kann ich leider den Rückgängig Button nicht benutzen. Das rührt wohl daher, dass nach einer jeglichen Eingabe das Makro ausgeführt wird.
Hat jemand evtl. eine Idee, wie man das umgehen kann?
Keine Chance ! Makro "löscht" Rückgängig-Historie
21.01.2010 11:27:29
NoNet
Hallo Chris,
da kann ich nur sagen : Ent- oder weder - aber nicht beides !
Zellaktionen durch VBA "löschen" quasi die "Rückgängig-Historie" - ebenso wie das Speichern der Mappe etc... (Profis sagen dazu : "Works as designed").
Gruß, NoNet
AW: Keine Chance ! Makro "löscht" Rückgängig-Historie
21.01.2010 11:47:45
Chris
Könnte man denn statt des Worksheet_Change eine Art Cell_Change Makro verwenden?
á la: Nur wenn in den Zellen B10:B15, C10:C10 Änderungen eingegeben werden, soll Makro ausgeführt werden?
If Not Intersect(Target, [B10:B15,C10]) Is Nothing
21.01.2010 12:04:33
NoNet
Hallo Chris,
so geht's :
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [B10:B15,C10]) Is Nothing Then
'Hier Dein Makro-Code
End If
End Sub
Gruß, NoNet
Anzeige
AW: If Not Intersect(Target, [B10:B15,C10]) Is Nothing
21.01.2010 12:20:35
Chris
Hi, danke für Deine Rückmeldung. So ähnlich habe ich das auch gemacht:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
On Error GoTo errorcatcher
Dim Rng1 As Range
Dim Rng2 As Range
Dim Rng3 As Range
If IsEmpty(Target) Then GoTo errorcatcher
Set Rng1 = Range("E78:Q78")
Set Rng2 = Range("E143:Q143")
Set Rng3 = Range("E201:Q201")
If Not Intersect(Rng1, Target) Is Nothing Then
Rng2.Value = Rng1.Value
Rng3.Value = Rng1.Value
End If
If Not Intersect(Rng2, Target) Is Nothing Then
Rng1.Value = Rng2.Value
Rng3.Value = Rng2.Value
End If
If Not Intersect(Rng3, Target) Is Nothing Then
Rng1.Value = Rng3.Value
Rng2.Value = Rng3.Value
End If
errorcatcher:
Application.EnableEvents = True
End Sub
Mit diesem Code wird dann die Rückgängig-Historie gelöscht, da der Code natürlich auch ausgeführt wird, wenn ich in einem beliebigen Feld eine Eingabe mache. Könnte man das also so handeln, dass der Code nur ausgeführt wird, wenn man Eingaben in Rng1, 2 oder 3 macht?
Anzeige
Historie wird NICHT gelöscht !
21.01.2010 12:39:06
hary
Hallo Chris,
weder in Deinem geposteten Code noch durch mein kleines Beispiel wird die Historie gelöscht, wenn Eingaben außerhalb der definierten Bereiche getätigt werden !
Gruß, NoNet
Upps - Sorry : Beitrag ist NICHT von hary ! _oT
21.01.2010 12:39:53
hary
_oT
LoL mT
21.01.2010 12:50:15
hary
Hallo NoNet
...und so bekommt man raus oft raus, wer sich anders benennt.
Gruss hary
AW: Upps - Sorry : Beitrag ist NICHT von hary ! _oT
21.01.2010 13:06:39
hary
Ach Mist, dummer Fehler meinerseits. Unter dem Code hatte ich noch ein paar Anweisungen zum Sperren und Entsperren der Zeilen. Wenn ich die deaktiviere (brauche ich nicht unbedingt), funktionierts mit dem Rückgängig-Button.
Danke für die Rückmeldung!

250 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige