Clever-Excel-Forum

Normale Version: Bereitschaftsplanung
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

ich möchte gern eine Excel Tabelle erstellen, um die Bereitschaftsplanung meiner Abteilung durchzuführen.

Es gibt 7 Mitarbeiter, die die Bereitschaft übernehmen sollen. Gleichzeitig gibt es mehrere Randbedingungen, die nicht verletzt werden dürfen. Die Bereitschaft darf. max. 1 Woche am Stück dauern, die Mitarbeiter dürfen max.12 Wochen/Jahr und max. 15 Tage/Monat Bereitschaft haben. Außerdem sollten sie nur ein Wochenende im Monat Bereitschaft haben, maximal zwei Wochenenden.

Ich möchte nun im Tabellenkopf über der Planung prüfen, ob die aktuelle Planung eine dieser Randbedingungen verletzt. Das soll dann beim entsprechenden Mitarbeiter bei der verletzten Bedingung angezeigt werden. Gibt es Ideen, wie ich das machen kann?
Vermutlich mit VBA, oder? Da bin ich allerdings kein großer Könner!

Die Beispieldatei ist angehängt.
 
Vielen Dank schon einmal an euch!

[attachment=19605]

Siehe dazu auch: Herbers Excel Forum 1643542
Hallo,

geht auch nur per Formel - siehe angehängten Lösungsvorschlag
Vielen Dank, das hilft mir weiter!

Hier gibt es jetzt nur noch das Problem, dass in deiner Lösung in den Spalten, die die Bedingungen zählen beim Jahres- oder Monatswechsel der erste Tag z.B. (der 1.1. bei Mitarbeiter C oder MA A Bedingung 3 am 1.7.2019) mit einer Null gezählt wird. Das kann man aber wahrscheinlich schnell anpassen indem man in der WENN Funktion die dann Bedingungen auf 1 ändert statt 0.
Hallo Wilde13.
 
Matthias hat eine interessante Lösung zu Deiner Anforderung präsentiert, die leider nach meinem Verständnis den Nachteil hat, dass zu jedem Mitarbeiter 4 Hilfsspalten notwendig sind.
 
Dieses lässt sich nur mit einer VBA-Lösung umgehen.
 
Im Anhang findest Du eine. Betätige die Schaltfläche „Regeln prüfen“ und es werden Dir alle Regel-Verletzungen angezeigt.  (Zum Testen hab ich Deine korrekten Daten verfälscht, um auch Verletzungen zu finden.)
 
Vielleicht hilft Dir das.
 
Peter
Hallo

ich habe mir erlaubt die vorhandene Makro Lösung zu erweitern. Zuviele Fehler kann man nicht im Kopf merken!
Eine Liste wo man ide Daten auflistet könnte da hilfreich sein.  s. Tabelle:  "Regelfehler"

mfg  Gast 123

Code:
Function Ausgabe(RegelNr, SpalteName, ZeileDatum)
Dim z As Integer
MsgBox ("Regel " & RegelNr & " verletzt bei Mitarbeiter " & Cells(2, SpalteName) & " am " & Cells(ZeileDatum, 2))
With Worksheets("Regelfehler")
   z = .Cells(Rows.Count, 1).End(xlUp).Row + 1
  .Cells(z, 1) = z - 1
  .Cells(z, 2) = RegelNr
  .Cells(z, 3) = Cells(2, SpalteName)
  .Cells(z, 4) = Cells(ZeileDatum, 2)
End With
End Function