Hallo zusammen!
Ich habe ein kleines Makro geschrieben, dass bei Einträgen in der vorgegebenen Spalte (Spalte 3) auslöst, wenn ein Wert eingetragen wird.
Datum, Uhrzeit und Nutzer werden automatisch ausgelesen und in die entsprechenden Spalten eingetragen. Außerdem sollen die ausgefüllten Zellen sofort vor Änderungen geschützt werden, die leeren Zellen sollen aber ausfüllbar bleiben.
Das klappt auch wunderbar. Aber nach einer zufälligen Anzahl an Einträgen (zwischen 3-10), sind plötzlich auch leere Zellen gesperrt. Wenn ich den Code jetzt in eine neue Datei übernehme, wird es noch abenteuerlicher. Da sperrt er meistens die Zeile, nur nicht die Zelle, in der der Wert eingetragen wurde. Der Wert eine Zeile darüber ist dann aber plötzlich gesperrt.
Da die Dateien, in denen ich das Makro anwenden will, sehr viele Daten enthalten, wollte ich Schleifen vermeiden, die jede Zelle abfragen, ob leer oder nicht. Dann rödelt Excel schon lange vor sich hin.
Meine Excel Version ist folgende: (Version 2202 Build 16.0.14931.20128) 64 Bit
Hier der Code:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo here
ActiveSheet.Unprotect
Application.EnableEvents = False
If Target.Column = 3 Then
Range("A" & Target.Row) = Date
Range("b" & Target.Row) = Time
Range("D" & Target.Row) = Environ("Username")
End If
With ActiveSheet
.Cells.Locked = True
.Cells.SpecialCells(xlCellTypeBlanks).Locked = False
.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End With
here:
Application.EnableEvents = True
End Sub
Viele Grüße
Sophia
|