407 Aufrufe
Gefragt in Tabellenkalkulation von ahorn38 Experte (3.2k Punkte)
Hallo,

ich [xurl=http://jamaipa.de|Jamaipa - Suche ohne Spam und Shops]suche[/url] nach einer Idee für die VBA-Umsetzung von folgendem Problem:
In einem Monat von 30/31 Tagen sollen Termine für 5 Mitarbeiter geplant werden. Dabei sollen in einem erst Schritt jeweils die Wunschtermine und Sperrtermine berücksichtigt werden. Im zweiten Schritt sollen die dann noch offenen Tage möglichst gerecht unter den fünf Mitarbeitern aufgeteilt werden.
Hat schon mal jemand etwas ähnliches gemacht?
Danke für jeden Tipp! VG A.

3 Antworten

0 Punkte
Beantwortet von
Hallo Andreas .-)

Vielleicht hilfreich!

Aus meiner Kramkiste von selbst erstellten Makros(bin zur zeit unpässlich)

Redimensionierung der ersten Dimension eines Zwei Dimensionalen Array

Eine Reduzierung von Werktagen wie auch Mitarbeitern ist hiermit leicht realisierbar

Ein Array das die Daten einer Spalte/oder Zeile beinhaltet(zwei Dimensional)

Mit Schleifenbildung die erstellten Arrays nach Bedingungen reduzieren(Vergebung von Werkagen und/oder Mitarbeitern)

Aufruf ist ArrayRedim(Dein Zweidimensionales Array)
-1 ist eine reduzierung des Array,zur Zeit eingestellt in der Fuction
+1 ist eine erweiterung des Array
Syntax z.b. NeuArray=ArrayRedim(AltArray)

[code]Function ArrayRedim(Darr As Variant) As Variant
    Dim Daten As Variant
    Daten = Application.WorksheetFunction.Transpose(Darr)
    ReDim Preserve Daten(1 To UBound(Daten) - 1)
    ArrayRedim = Application.WorksheetFunction.Transpose(Daten)
End Function[/code]
0 Punkte
Beantwortet von ahorn38 Experte (3.2k Punkte)
Hallo nighty,
danke erst mal für deine schnelle Antwort. ich muß das Problem nur in eine Form bringen, in der ein Excel-Anfänger arbeiten kann.
Ich habe mir gedacht, eine Userform zu erstellen in der der Monatskalender in Labels abgebildet wird und dann über Optionsfelder die Auswahl  von Wunschtermin oder Sperrtermin möglich machen. Ich habe nur keine Ahnung von UserForm....
Ich scheitere schon dabei die Labels für die Kalendertage durch einen Code einzulesen....

GUTE BESSERUNG!
0 Punkte
Beantwortet von
Hallo Andreas :-)

Ein möglicher Ansatz!

Array1=Mitarbeiter
Array2=Werktage
Array3=Anzahl(Mitarbeiter bezogen) der eingetragener Wunschdaten

Array1 und Array3 laufen Parallel für die Index Zuweisung bzw Zählung der schon vergebenen Terminen
Index+1(Array3) bei vergabe eines Termines

Schleife über die Werktage
kleinste Index(Array3) bekommt den nächsten Termin(nächste ermittelte freie Zelle(Array2)
Parallel zu Array1 zugehöriger Mitarbeiter

Somit spielt die Anzahl der Werktage oder auch die Anzahl der Mitarbeiter keine Rolle mehr

Gruß Nighty
...