Hallo zusammen,
in der Vergangenheit hatte mir ein Benutzer bereits mit nachstehendem Code geholfen. Dieser prüft jede 3te Spalte, ob eine Dopplung vorhanden ist.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Bereich1 As Range, i As Long
For i = 4 To 1099 Step 3
Select Case Target.Column
Case i
Set Bereich1 = Range(Cells(2, i), Cells(10, i))
Exit For
Case Else
'nix machen
End Select
Next i
If Target.Cells.Count > 1 Then Exit Sub
If Target.Value = "" Then Exit Sub
If Not Bereich1 Is Nothing Then
If Intersect(Bereich1, Target) Is Nothing Then Exit Sub
If WorksheetFunction.CountIf(Bereich1, Target.Value) > 1 Then
MsgBox ("Doppelter Eintrag nicht zulässig")
Application.EnableEvents = False
Target.Value = ""
Application.EnableEvents = True
Target.Select
End If
End If
Set Bereich1 = Nothing
End Sub
Allerdings muss ich das ganze erweitern und benötige daher nochmal Eure Hilfe:
Aktueller Aufbau:
-
Ich habe eine Mitarbeiterliste ( Zeile:C143:C180) und in der Spalte daneben (D143:D180) die Verfügbarkeit (z.B. verplant, verfügbar, krank, Schulung etc.) der Mitarbeiter.
-
In den Zeilen D4 bis D135 plane ich die Mitarbeiter auf Tätigkeiten. Aktuell wird mir dank des bisherigen Codes im Planungsbereich (D4:D135) eine doppelte Eingabe angezeigt bzw. per MsgBox darauf hingewiesen.
-
Ziel / was es jetzt noch braucht: Wenn ich einen Mitarbeiter im Bereich D4 bis D135 angebe, welcher nicht verfügbar ist soll ebenfalls ein Hinweis kommen. D.h. Man müsste den Mitarbeiters der im Planungsbereich (D4 : D135) angegeben wird gegen die Mitarbeiterliste und ihre Verfügbarkeit (C143:C180 & D143:D180) prüfen.
-
Beispiel: Ich gebe Mitarbeiter "Inge" in D4 ein -> diese steht in der Mitarbeiterliste z.B. in C166 und in D166 auf Verfügbarkeit "krank" -> es soll ein Hinweis erscheinen, dass die Eingabe unzulässig ist, da Mitarbeiter nicht verfügbar.
Sicher kann mir einer der Experten hier helfen. Vielen Dank vorab für die Unterstützung!
|