ich hänge an einem Problem fest und finde keine Lösung. Vielleicht könnte ihr mir helfen.
Ich habe mehrere Spalten mit Werten wie Datum, Name, Uhrzeit, Personalnummer, Honorar, etc. Meine Idee: Wenn ich eine neue Zeile eingebe und die ersten drei Werte (Datum, Name, Uhrzeit) bereits in irgendeiner Zeile darüber in genau dieser Reihenfolge vorkommen, dann gib eine Meldung: Eintrag gibt es schon. D.h. es geht um die Vermeidung doppelter Eintragungen.
Bisher habe ich nur eine Idee: Für jede Zeile jede Zelle in der Reihenfolge prüfen. Das ist aber sehr klobig und das muss doch einfacher gehen, denke ich mir. Geht das einfacher? Hier meint Code bisher:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim wb As Workbook: Set wb = ActiveWorkbook
Dim ws As Worksheet: Set ws = wb.ActiveSheet
Dim lrow As Integer
lrow = ws.Cells(Rows.Count, 1).End(xlUp).Row
Dim frow As Integer
frow = lrow - 1
Dim i As Integer
'lässt sich der folgende Komplex vereinfachen?
For i = 2 To frow
If ws.Cells(i, 1).Value = ws.Cells(lrow, 1) Then
If ws.Cells(i, 2).Value = ws.Cells(lrow, 2) Then
If ws.Cells(i, 3).Value = ws.Cells(lrow, 3) Then
MsgBox "Gibt es bereits in Zeile: " & i
ws.Cells(lrow, 1).Value = Empty
ws.Cells(lrow, 2).Value = Empty
ws.Cells(lrow, 3).Value = Empty
ws.Cells(i, 1).Select
GoTo weiter
End If
End If
End If
Next i
weiter:
'weiterer Code...
End Sub
Freue mich über AnregungenJohannes