So meine vermeintliche Lösung war es die komplette Routine einfach umzudrehen in der Hoffnung er könnte dann nicht "zurückspringen", da die tatsächlich erfüllte Bedingung vor der fälschlicherweise ausgeführten Bedingung erfragt wird. Funktioniert allerdings genauso nicht, nur eben andersherum. :D
wenn beispielweise die erste und die vierte Zelle denselben Wert haben, fragt er mich nach der ersten Zelle schon ob ich die Daten übernehmen möchte, weil er sie für die vierte hält.
Hier mein Code ->
Private Sub Enter()
Application.ScreenUpdating = False
'# Prüfe ob aktuell im Terminal und gehe zu nächster Position.
If ActiveCell = Range("G40") Then
Range("I34:L34").Select
Answer = MsgBox("Änderungen für Auswahl übernehmen?", vbYesNo, "Änderungen übernehmen")
If Answer = vbYes Then
Dateisystem.Speichern
Else
Range(Range("C36").Value).Select
End If
ElseIf ActiveCell = Range("G39") Then
Range("G40").Select
SendKeys "{F2}", True
SendKeys "+(^{LEFT})"
ElseIf ActiveCell = Range("D40") Then
If Range("AB1").Value = True Then
Range("I34:L34").Select
Answer = MsgBox("Änderungen für Auswahl übernehmen?", vbYesNo, "Änderungen übernehmen")
If Answer = vbYes Then
Dateisystem.Speichern
Else
Range(Range("C36").Value).Select
End If
Else
Range("G39").Select
SendKeys "{F2}", True
SendKeys "+(^{LEFT})"
End If
ElseIf ActiveCell = Range("D39") Then
Range("D40").Select
SendKeys "{F2}", True
SendKeys "+(^{LEFT})"
Else
'# Prüfe ob Auswahl ein Kalendertag ist.
If CheckError.IsError(Selection) Then Exit Sub
ActiveSheet.Unprotect Password:="0444786400"
With Selection
.Font.ThemeColor = xlThemeColorDark1
.Font.TintAndShade = 0
.Borders(xlEdgeLeft).Weight = xlThick
.Borders(xlEdgeRight).Weight = xlThick
.Borders(xlEdgeTop).Weight = xlThick
.Borders(xlEdgeBottom).Weight = xlThick
End With
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:="0444786400"
'# Gehe zu Preisfeld und markiere Inhalt.
Range("D39").Select
SendKeys "{F2}", True
SendKeys "+(^{LEFT})"
End If
End Sub
|