kleines Problem von mir bezüglich eines Makros, bei dem ihr mir wahrsch. im Handumdrehen helfen könnt. Ausgangspunkt ist eine Excel-Datei mit zwei Arbeitsblättern auf denen sich zwei identisch große Tabellen befinden. Angenommen beide haben die Größe A1:D6.
Mein Ziel:
Wird in eine Zelle auf Blatt 1 (beispielsweise A1) ein Wert eingetragen (z.B. U), soll in der gleichen Zelle auf Blatt 2 (also auch wieder A1), das tagesaktuelle Datum + im besten Fall noch die aktuelle Uhrzeit eingetragen werden. Die Funktionen Heute() und Jetzt() fallen raus, da sich das Datum nicht eigenständig aktualisieren soll. Es soll stets das Datum der letzten Zelländerung auf Blatt 2 hinterlegt sein.
Durch ein bisschen rumgoogeln habe ich den folgenden Code gefunden:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("Blatt1!A1:D6")) Is Nothing Then Exit Sub
If Target.Count > 1 Then Exit Sub
If Target = " " Then
Target.Offset(0, 1).ClearContents
Else:
Target.Offset(0, 1) = CDate(Format(Now, "dd.mm.yyyy"))
End If
End Sub
Funktioniert auch soweit, nur weiß ich nicht, wie ich mit Target.Offset auf Blatt 2 verweise. Bzw. noch dazu, dass das Datum in die selbe Zelle auf Blatt 2 geschrieben wird. Was müsste ich hier abändern, damit ich mein Ziel erreichen kann. Bzw. klappt das überhaupt mit Target.Offset oder brauche ich eine andere Funktion. Und ClearContents funktioniert irgendwie auch nicht richtig, da das Datum beim Löschen des Zelleintrages trotzdem bestehen bleibt.Dazu kommt, dass Blatt 2 geschützt ist. Also dort sollen keine Änderungen vorgenommen werden können. Nur zur Info, falls das relevant sein sollte.
Ich hoffe, dass ihr mir mit meinem (kleinen) Problem helfen könnt. Habe mal eine Beispiel-Datei angehängt mit dem oben beschriebenen Code.
https://www.herber.de/bbs/user/150857.xlsm
Viele Grüße,
Fabian