Hallo TRNT
ich habe das mal angeschaut. du könntest in der Spalte mit den Jobnamen diese mit der Farbe hinterlegen, die dann oben in der Zeitskala benutzt werden soll. diese Farbe kann durch ein Makro abgefragt werden. Ich habe im Makro alles so definiert, dass du die Exceltabelle anpassen kannst. also zum Beispiel die Liste mit den Jobs an eine andere Position dieses Tabellenblattes positionieren (wenn zum Beispiel 4 Maschinen tätig sind). Dafür musst du dann aber im Excel die Zahlen anpassen (Variabeln zuweisen).
Ich habe das zuweisen der Farbe in eine eigene Funktion abgelegt, die dann immer wieder aufgerufen wird.
Sub TRNT_Zeitskala_abfuellen()
'Variabeln deklarieren:
Dim Dbl_TRNT_Farbcode As Double
Dim Int_TRNT_Zeile As Integer
Dim Int_TRNT_Spalte As Integer
Dim Int_TRNT_Zeile_Erste_Maschine As Integer
Dim Int_TRNT_Spalte_Erste_Maschine As Integer
Dim Int_TRNT_Zeile_Erster_Job As Integer
Dim Int_TRNT_Spalte_Erster_Job As Integer 'wo MaschinenNr steht
Dim Int_TRNT_Spalten_Maschine_Job As Integer
Dim Int_TRNT_Spalten_Job_Dauer As Integer
Dim Dbl_TRNT_Spalten_Job_Farbe As Double
Dim Int_TRNT_Spalten_Dauer_Start As Integer
Dim Int_TRNT_Machinen_Nr As Integer
Dim Int_TRNT_Job_Nr As Integer
Dim Int_TRNT_Dauer As Integer
Dim Int_TRNT_Start As Integer
Dim Int_Schlauffen_Summand As Integer
Dim Str_TRNT_Jobkuerzel As String
'Variabeln zuweisen:
Int_TRNT_Zeile_Erste_Maschine = 2
Int_TRNT_Spalte_Erste_Maschine = 3
Int_TRNT_Zeile_Erster_Job = 7
Int_TRNT_Spalte_Erster_Job = 3
Int_TRNT_Spalten_Maschine_Job = 3
Int_TRNT_Spalten_Job_Dauer = 2
Int_TRNT_Spalten_Dauer_Start = 2
Dbl_TRNT_Spalten_Job_Farbe = Int_TRNT_Spalte_Erster_Job + Int_TRNT_Spalten_Maschine_Job
Int_Schlauffen_Summand = 0
Str_TRNT_Jobkuerzel = „J“
'Schlaufe zum Abarbeiten der Jobs in den Maschinenzeitleiste
While Cells(Int_TRNT_Zeile_Erster_Job + Int_Schlauffen_Summand, Int_TRNT_Spalten_Maschine_Job).Value2 „“
'werte einlesen
Int_TRNT_Machinen_Nr _
= Cells(Int_TRNT_Zeile_Erster_Job + Int_Schlauffen_Summand, _
Int_TRNT_Spalten_Maschine_Job).Value2
Int_TRNT_Job_Nr _
= Cells(Int_TRNT_Zeile_Erster_Job + Int_Schlauffen_Summand, _
Int_TRNT_Spalten_Maschine_Job + Int_TRNT_Spalten_Maschine_Job).Value2
Int_TRNT_Dauer _
= Cells(Int_TRNT_Zeile_Erster_Job + Int_Schlauffen_Summand, _
Int_TRNT_Spalten_Maschine_Job + Int_TRNT_Spalten_Maschine_Job + Int_TRNT_Spalten_Job_Dauer).Value2
Int_TRNT_Start _
= Cells(Int_TRNT_Zeile_Erster_Job + Int_Schlauffen_Summand, _
Int_TRNT_Spalten_Maschine_Job + Int_TRNT_Spalten_Maschine_Job + Int_TRNT_Spalten_Job_Dauer + Int_TRNT_Spalten_Dauer_Start).Value2
'verarbeiten
'Jobnummer einfügen:
Cells(Int_TRNT_Zeile_Erste_Maschine + Int_TRNT_Machinen_Nr - 1, _
Int_TRNT_Start + Int_TRNT_Spalte_Erste_Maschine - 1).Value2 = _
Str_TRNT_Jobkuerzel & Int_TRNT_Job_Nr
'Job einfärben
Dbl_TRNT_Farbcode _
= Cells(Int_TRNT_Zeile_Erster_Job + Int_Schlauffen_Summand, _
Int_TRNT_Spalten_Maschine_Job + Int_TRNT_Spalten_Maschine_Job).Interior.Color
Call TRNT_Einfaerben(Dbl_TRNT_Farbcode, Int_TRNT_Zeile_Erste_Maschine + Int_TRNT_Machinen_Nr - 1, _
Int_TRNT_Start + Int_TRNT_Spalte_Erste_Maschine - 1, Int_TRNT_Dauer + Int_TRNT_Start + Int_TRNT_Spalte_Erste_Maschine - 2)
Int_Schlauffen_Summand = Int_Schlauffen_Summand + 1
Wend
End Sub
Function TRNT_Einfaerben( _
Dbl_TRNT_Farbcode As Double, Int_TRNT_Zeile As Integer, Int_TRNT_Spalte_Beginn As Integer, Int_TRNT_Spalte_Ende As Integer)
With _
Range(Cells(Int_TRNT_Zeile, Int_TRNT_Spalte_Beginn).Address & „:“ & Cells(Int_TRNT_Zeile, Int_TRNT_Spalte_Ende).Address).Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = Dbl_TRNT_Farbcode '5296274 hellgrün,
.TintAndShade = 0
.PatternTintAndShade = 0
End With
End Function