AW: Formel?
03.12.2009 17:41:07
fcs
Hallo Anne,
eine Formellösung dürfte hier ziemlich kompliziert werden, wenn überhaupt möglich.
Einfacher ist hier eine Lösung per Makro.
Gruß
Franz
Sub MaschinenPlan()
Dim wksDaten As Worksheet, ZeileDaten As Long
Dim wksAuswert As Worksheet, ZeileAusw As Long, SpalteMa As Long
Dim ZeitpunktStart As Date, ZeitpunktEnde As Date
Dim Maschine As String, Produkt As String
Dim SchichtStart As String, SchichtEnde As String, Schichtbeginn As Date
Set wksDaten = Worksheets("Ausgangstabelle")
Set wksAuswert = Worksheets("Auswertung")
With wksAuswert
.Range(.Cells(2, 3), .Cells.SpecialCells(xlCellTypeLastCell)).ClearContents
End With
With wksDaten
For ZeileDaten = 2 To .Cells(.Rows.Count, 1).End(xlUp).Row
'Daten aus Zeile in Ausgangstabelel einlesen
ZeitpunktStart = .Cells(ZeileDaten, 3).Value
ZeitpunktEnde = .Cells(ZeileDaten, 7).Value
SchichtStart = .Cells(ZeileDaten, 4).Value
SchichtEnde = .Cells(ZeileDaten, 8).Value
Maschine = .Cells(ZeileDaten, 9).Value
Produkt = .Cells(ZeileDaten, 10).Value
With wksAuswert
SpalteMa = Application.WorksheetFunction.Match(Maschine, .Range(.Cells(1, 1), .Cells(1, _
.Columns.Count).End(xlToLeft)), 0)
For ZeileAusw = 2 To .Cells(.Rows.Count, 1).End(xlUp).Row
'Beginn der Schichtzeit in Auswertungzeile
Select Case Mid(.Cells(ZeileAusw, 2).Value, InStr(1, .Cells(ZeileAusw, 2).Value, " ") _
+ 1)
Case "Früh"
Schichtbeginn = .Cells(ZeileAusw, 1).Value + CDate("06:00:00")
Case "Spät"
Schichtbeginn = .Cells(ZeileAusw, 1).Value + CDate("14:00:00")
Case "Nacht"
Schichtbeginn = .Cells(ZeileAusw, 1).Value + CDate("22:00:00")
End Select
'Vergleich Schichtbeginn innerhalb Produktionszeitraum oder Schichtbezeichnung _
übereinstimmend
If (Schichtbeginn >= ZeitpunktStart And Schichtbeginn