Hallo zusammen,
ich habe eine"Aufgabe", welche ich allein nicht hinbekomme. Ich wollte nicht Problem sagen
Es soll ein Schichtplan für 24 Personen erstellt werden.
Es gibt nur Früh- oder Spätschicht und nur die Arbeitstage Montag bis Freitag.
Einige Personen können nur Früh-, oder nur Spätschicht leisten
Diese Daten (Ausschlußkriterien) stehen im aktuellen Arbeitsblatt in C3:C27
"S" bedeutet, die Person kann nur Frühschicht, "F" bedeutet, die Person kann nur Spätschicht, "" bedeutet, die Person ist flexibel.
Darüber hinaus sollen die Personen max 2 Schichten je Woche leisten
und
je Wochentag sollen max 2 Früh- & 2 Spätschichten eingeteilt werden.
Klar soweit??
Der Schichtplan soll im aktuellen Arbeitsblatt auf Knopfdruck im Bereich F3:J27 erstellt werden (Array von 24 Personen x 5 Wochentage)
Ich habe es mit Formeln in den Zellen versucht:
Das ist dann aber statisch und die Verzweigungen werden so unübersichtlich, dass ich nicht mehr durchsteige.
Ich habe einen Entwurf, an dem ich immer wieder rumbastele, bekomme aber ständig wechselnde Fehlermeldungen
Ich kriegs nicht hin.
Kann mir hier jemand helfen?
Option Explicit
Sub Schichtplan()
Dim sPlan(), Vorgabe() As Variant
Dim i, k, zf, zs, zt
Vorgabe() = Range("C3:C27")
For k = 0 To 4
For i = 0 To 24
If zs <= 2 Then
If Vorgabe(1, i) = "F" Then
sPlan(i, k) = "S"
zs = zs + 1
zt = zt + 1
MsgBox Vorgabe(1, i), vbOKOnly
Else
sPlan(i, k) = "F"
zf = zf + 1
zt = zt + 1
End If
ElseIf zf <= 2 Then
If Vorgabe(1, i) = "F" Then
sPlan(i, k) = "S"
zs = zs + 1
zt = zt + 1
Else
sPlan(i, k) = "F"
zf = zf + 1
End If
Else
sPlan(i, k) = ""
End If
Next i
Next k
Range("F3:J27") = sPlan
End Sub
Ich möchte den Inhalt der Spalte C von C3:C27 in ein Array speichern
Dieses Array (der Bereich) beinhaltet Bedingungen.
Per Schleife und Bedingungsabfrage sollen Werte in ein weiteres Array gespeichert werden und dieses Array
in der Tabelle in den Bereich F3:J27 zurück gegeben werden.
Eigentlich ganz leicht, wenn man's kann. Ich kann's dann wohl nicht.
Immer in Zeile 20 im Code {sPlan(i, k) = "F"} bekomme ich die Fehlermeldung:
Laufzeitfehler'9':
Index außerhalb des gültigen Bereichs
Warum bekomme ich diese Fehlermeldung erst beim zweiten Zugriff auf das entsprechende Array?
Der erste Zugriff (in der If-Abfrage / 4 Zeilen früher) funktioniert ja. Wird zumindest nicht mit einer Fehlermeldung quittiert;-)
Versteh ich nicht
Über Hilfe würde ich mich freuen.
Gruß, Luca160
|