für die tägliche Erfassung von Meßwerten habe ich für unsere Produktionslinie eine Datei erstellt. Um zu vermeiden, dass bei aufkommender Hektik für einen Tag doppelt eingetragen wird, frage ich mit diesem Schnipsel ab, ob für diesen Tag nicht schon ein Eintrag existiert.
datum = ActiveCell.Offset(-1, -1).Value
If datum = Date Then
MsgBox "Zu diesem Datum gibt es bereits einen Eintrag !"
ActiveSheet.Protect "schutz"
Exit Sub
End If
Mit folgendem Code wird bei Eingabe das Datum erzeugt.
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim RaBereich As Range, RaZelle As Range
Set RaBereich = Range("C14:Z14")
Application.EnableEvents = False
For Each RaZelle In Range(Target.Address)
If Not Intersect(RaZelle, RaBereich) Is Nothing Then RaZelle.Offset(-1, 0) = Date
Next RaZelle
Application.EnableEvents = True
Set RaBereich = Nothing
End Sub
Und dort besteht das Problem für den 3-Schichtbetrieb explizit für die Nachtschicht. Schichtbeginn ist 22.00 Uhr. Werden die Daten immer vor Mitternacht eingegeben, ist das kein Problem. Werden die Daten nach Mitternacht eingegeben, wird das Datum das Folgetages erzeugt und das bringt ein Problem, wenn in der nächsten Nachtschicht die Daten vor Mitternacht eingegeben werden. Denn dieses Datum hat er ja schon.
D.h. für die Zeit von Mitternacht bis Schichtende 06.00 Uhr muss das Datum vom Vortag eingetragen werden.
Hoffe die Fragestellung ist verständlich und ihr könnt helfen.
Gruß
Harald