ich versuche meine Tabelle nach folgenden Kriterien zu sortieren:
1. Sortieren nach Zell Farbe oder Text (Material vorhanden ja/nein)
2. Ergebnisse von 1. Sortieren nach Datum (Lieferdatum)
3. Auslastung in %
a. Betrachte nur Ergebnisse von 1. und 2.
b. Fenster für Auslastung vom aktuellen/letzten Auftrag
c. Suche Folgeauftrag der zu einer möglichst hohen Auslastung führt
d. Wenn mehrere Ergebnisse möglich/gleich oder in einer Toleranz (>90% Auslastung) früheres Lieferdatum wählen
Die Spalte Auslastung gibt Auskunft über die benötigten Geräte zur Vorbereitung und Produktion. Dazu soll der Prozentwert von zwei aufeinanderfolgenden nicht über 100%, aber möglichst nah an 100% sein. Sortiert werden sollen aber nur die Werte für die Material vorhanden ist.
Meine Beispiel Datei hab ich dazu hochgeladen:
https://www.herber.de/bbs/user/145069.xlsm
Mein Code arbeitet nur Schritt 1. und 2. ab für 3. habe ich angefangen ein Array mit den zu _ betrachteten Werten zu füllen, weiß aber nicht wie ich hier weiter vorgehen kann.
Sub Sort()
' Sort Makro
Dim auslastung()
Dim size As Integer
Dim i As Integer
ActiveWorkbook.Worksheets("Reihenfolge").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Reihenfolge").Sort.SortFields.Add(Range("A:A"), _
xlSortOnCellColor, xlAscending, , xlSortNormal).SortOnValue.Color = RGB(112, _
173, 71)
ActiveWorkbook.Worksheets("Reihenfolge").Sort.SortFields.Add2 Key:=Range( _
"B:B"), SortOn:=xlSortOnValues, Order:=xlAscending, CustomOrder:= _
"Mo,Di,Mi,Do,Fr,Sa,So", DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Reihenfolge").Sort
.SetRange Range("A:E")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
size = WorksheetFunction.CountIf(Range("A:A"), "Ja")
ReDim auslastung(size)
For i = 0 To size
auslastung(i) = Cells(i + 1, 3).Value
Next i
End Sub
Der Aufbau der Tabelle ist beispielhaft: Danke schonmal für jede Hilfe!
Viele Grüße
Marcel