Frage von Sasray1001, 162

Zeitstempel fixieren in vorhandenem vba Code?

Hallo ich habe in einer Tabelle ein vba Code der automatisch einen Zeitstempel setzt. Nur soll dieser bei einer erneuten Eingabe in dieser Zeile nicht mehr verändert werden. Ich hoffe das es da eine Lösung gibt. Hier mal die existierende Programmierung.

Private Sub Worksheet_Change(ByVal Target As Excel.Range) Dim RaBereich As Range ' abbrechen, wenn erste Zeile oder mehr als eine Zelle aktiv If Target.Row < 2 Or Target.Count > 1 Then Exit Sub

'für Änderungen in D4 bis D15. Ggf anpassen
Set RaBereich = Range("D4:D15")
Application.EnableEvents = False

'bei Änderung drei Zellen links davon Datum und Uhrzeit eintragen
If Not Intersect(Target, RaBereich) Is Nothing Then
    Target.Offset(0, -3) = Format(Now, "dd.mm.yyyy - hh:mm:ss")
End If

Application.EnableEvents = True
Set RaBereich = Nothing

End Sub

Wäre echt Dankbar für Hilfe

Expertenantwort
von Ninombre, Community-Experte für Excel, 139

am einfachsten eine Abfrage vorschalten, ob die Zelle, in die der Zeitstempel geschrieben wird, leer ist:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim RaBereich As Range ' abbrechen, wenn erste Zeile oder mehr als eine Zelle aktiv
If Target.Row < 2 Or Target.Count > 1 Then Exit Sub
'für Änderungen in D4 bis D15. Ggf anpassen
Set RaBereich = Range("D4:D15")
Application.EnableEvents = False
'bei Änderung dreiZellen links davon Datum und Uhrzeit eintragen
If Target.Offset(0, -3) = "" Then
If Not Intersect(Target, RaBereich) Is Nothing Then
    Target.Offset(0, -3) = Format(Now, "dd.mm.yyyy - hh:mm:ss")
End If
End If
Application.EnableEvents = True
Set RaBereich = Nothing
End Sub

Kommentar von Sasray1001 ,

Das ist genau das was ich gesucht habe Danke

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten