ich habe wieder einmal ein Problem bei dem mir bestimmt jemand weiterhelfen kann. Ich möchte, das bei einer Änderung (Change-Ereignis) bzw. beim Verlassen/ Wechseln einer Zelle mit der Enter-Taste das aktuelle Datum in der gleichen Zeile mit einem Offset eigetragen wird. Leider funktioniert mein Code noch nicht 100% (siehe auch Beispieldatei im Anhang). Dazu muss ich zum einen eine Überprüfung starten ob Zelle in der richtigen Spalte ist und ob die Zelle auch im gesuchten Bereich ist oder ob diese außerhalb liegt.
1.) Irgendwie startet der Code nicht immer zuverlässig und ich weiß leider nicht woran das liegt.
2.) Außerdem weiß ich nicht wie ich das mit der "Enter"-Taste hinbekomme.
3.) Ist die Überprüfung ob die AktuelleZelle im einem Range (Tabellenbereich) liegt richtig gelöst? Ich hätte das gerne so kompakt und kurz wie möglich. Mit mehrere If-Abfragen hintereinander müsste es ja auch gehen ist dann aber relativ unübersichtlich.
Code (im Modul des Arbeitsblattes: b>
Private Sub Worksheet_Change(ByVal AktuelleZelle As Range)
Application.DisplayAlerts = False
Select Case AktuelleZelle.Column 'Prüfen ob AktuelleZelle in Spalte für Eingaben ist
Case Is = 4
Application.EnableEvents = False
If Intersect(AktuelleZelle, Union(Range(ListObjects("tblTest1").DataBodyRange, _
ListObjects("tblTest2").DataBodyRange), Range(ListObjects("tblTest3").DataBodyRange, ListObjects("tblTest4").DataBodyRange))) Then 'Prüfen ob AktuelleZelle im Bereich einer Tabelle
Sheet2.Unprotect
AktuelleZelle.Offset(0, 1).Value = Format(Date, "DD.MM.YYYY") 'Datum eintragen
End If
End Select
Sheet2.Protect
Application.EnableEvents = True
Application.DisplayAlerts = True
End Sub
Information:tblTest1 - tblTest4 sind die Namen/ Bezeichnungen der Tabellen
Beispieldatei:
https://www.herber.de/bbs/user/117849.xlsm