ein Henne - Ei Problem. Was ist zuerst da und was reagiert dann auf was.
die Fehlenden werden also per Formel ermittelt.
die Personen,die mit Dropdown ausgewählt werden, ändern sich also machmal nachdem sie eingeplant wurden.
Somit wird eine Aktion benötigt, die beim Dropdown die Fehlenden berücksichtigt und eine Aktion die, bei Änderung der Fehlenden, die Eintragungen im Dropdownbereich kontrolliert.
Hier mal ein Versuch, kopiere den Code in das Codemodul des Tabellenblattes. DIe Datenbereiche mußt du an deine realen Größen anpassen.
Bei Fragen zum Code nutze die Onlinehilfe.
Private Sub Worksheet_Calculate() 'event wenn Formeln berechnet werden
Dim x, fund As Range
Dim rng As Range: Set rng = Range("b11:d21")
For Each x In rng.Cells
If x <> "" Then
If WorksheetFunction.CountIf(Intersect(ActiveSheet.UsedRange, x.EntireColumn), x.Value) > 1 Then
Set fund = Intersect(x.EntireColumn, Range("B2:D9")).Find(x.Value, LookIn:=xlValues, Lookat:=xlWhole)
If Not fund Is Nothing Then
MsgBox "Person wurde schon eingeplant" 'msgbox kann auskommentiert werden.
Application.EnableEvents = False
fund = ""
Application.EnableEvents = True
End If
End If
End If
Next
End Sub
Private Sub Worksheet_Change(ByVal Target As Range) 'event wenn Zellen geändert werden (Dropdown)
If Not Intersect(Target, Range("B2:D9")) Is Nothing Then
If Target <> "" Then
If WorksheetFunction.CountIf(Intersect(ActiveSheet.UsedRange, Target.EntireColumn), Target.Value) > 1 Then
MsgBox "Person wurde schon ausgewählt oder fehlt" 'msgbox kann auskommentiert werden.
Application.EnableEvents = False
Target = ""
Application.EnableEvents = True
End If
End If
End If
End Sub
|