Supportnet / Forum / Tabellenkalkulation
Zellveränderung dokumentieren = Zeitstempel
Frage
Guten Morgen!
Ich habe eine Tabelle mit ca. 1.000 Zeilen, in denen ich von Zeit zu Zeit Änderungen durchführen muss.
Nun wäre es interessant zu erfahren, wann (Datum + Uhrzeit) ein Eintag in z. B. Zelle G103 verändert wurde.
Dieses "Änderungsdatum" (= Zeitstempel) soll in der Zelle R103 mitprotokolliert werden und bei der nächsten Änderung der Zelle G103 überschrieben werden.
Läßt sich dies irgendwie umsetzen?
Tom
Antwort 1 von M.O.
Hallo Tom,
für das folgende Makro in das VBA-Projekt deiner Tabelle ein :
In den VBA-Editor kommst du mit ALT+F11.
Gruß
M.O.
für das folgende Makro in das VBA-Projekt deiner Tabelle ein :
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Intersect(Target, Range("G:G")) Is Nothing Then
Else
If Target.Value <> "" Then
Cells(Target.Row, 18) = Now
End If
End If
End Sub
In den VBA-Editor kommst du mit ALT+F11.
Gruß
M.O.
Antwort 2 von Tomschi
Hi M.O.!
Vorweg mal DANKE!
Einen kleinen Schönheitsfehler hat das VBA-Skript noch.
Wenn z. B. die Zelle Q13 (Q statt G) von ursprünglich 2 nunmehr "leer" enthält, dann bleibt das Datum samt Uhrzeit stehen.
Kann man dies auch noch automatisch löschen lassen?
Tom
Vorweg mal DANKE!
Einen kleinen Schönheitsfehler hat das VBA-Skript noch.
Wenn z. B. die Zelle Q13 (Q statt G) von ursprünglich 2 nunmehr "leer" enthält, dann bleibt das Datum samt Uhrzeit stehen.
Kann man dies auch noch automatisch löschen lassen?
Tom
Antwort 3 von M.O.
Hallo Tom,
ich hoffe, ich habe es richtig verstanden: statt der Spalte G wird nunmehr die Spalte Q überprüft.
Wird ein Eintrag gelöscht, wird auch der Zeitstempel gelöscht.
Hier der Code:
Gruß
M.O.
ich hoffe, ich habe es richtig verstanden: statt der Spalte G wird nunmehr die Spalte Q überprüft.
Wird ein Eintrag gelöscht, wird auch der Zeitstempel gelöscht.
Hier der Code:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Intersect(Target, Range("Q:Q")) Is Nothing Then
Else
If Target.Value <> "" Then
Cells(Target.Row, 18) = Now
Else
Cells(Target.Row, 18).Clear
End If
End If
End Sub
Gruß
M.O.
Antwort 4 von Tomschi
Mahlzeit!
Es funktioniert!!! DANKE!!!
Sorry, dass ich mich unklar ausgedrückt habe.
Tom
Es funktioniert!!! DANKE!!!
Sorry, dass ich mich unklar ausgedrückt habe.
Tom
Antwort 5 von M.O.
Hallo Tom,
kein Problem, schließlich konnte dir ja geholfen werden.
Außerdem ist heute Montag, da bin ich noch nicht so aufnahmefähig :-).
Gruß
M.O.
kein Problem, schließlich konnte dir ja geholfen werden.
Außerdem ist heute Montag, da bin ich noch nicht so aufnahmefähig :-).
Gruß
M.O.