Eingabeschutz über Makro - Codeoptimierung möglich
04.03.2004 16:28:38
Andreas Emmert
ich habe ein kleines Makro entwickelt, dass einen Eingabeschutz darstellt (s.u.). Dabei sollen nur Zellen mit einem festgelegten Format (hier: keine Hintergrundfarbe + Umrandung) freigegeben sein. Funktioniert auch alles wunderbar. Unschön dabei ist nur, dass sich durch das Application.Undo eine Schleife aufbaut, d.h. bei der Rückgängigmachung der Aktion/Eingabe flackert die Zelle etwa eine Sekunde. Lässt sich die Schleife irgendwie sauber unterbrechen, nachdem ich die Aktion rückgängig gemacht habe?
Danke und Grüße
Andreas
================================
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1:IV65536")) Is Nothing Then
With ActiveSheet.Cells(Target.Row, Target.Column)
If Not .Borders(xlEdgeLeft).ColorIndex = -4142 And _
Not .Borders(xlEdgeRight).ColorIndex = -4142 And _
Not .Borders(xlEdgeTop).ColorIndex = -4142 And _
Not .Borders(xlEdgeBottom).ColorIndex = -4142 And _
.Interior.ColorIndex = -4142 Then
' Keine Aktion, wenn in einer freigegebenen Zelle erfasst wird
Else
' Aktion, wenn in einer geschützten Zelle erfasst wird
Application.Undo
End If
End With
End If
End Sub