Microsoft Excel

Herbers Excel/VBA-Archiv

Formel??? | Herbers Excel-Forum


Betrifft: Formel??? von: Anne
Geschrieben am: 03.12.2009 12:02:33

Hallo,

ich habe ein Formelproblem. Ich habe dazu mal was hochgeladen:

https://www.herber.de/bbs/user/66343.xls

Im ersten Reiter "Ausgangstabelle" sind die Ausgangsdaten ersichtlich. Im zweiten Reiter steht die "Auswertung", wie sie quasi am Ende rauskommen soll. Im dritten Reiter stehen meine "Versuche" diese Auswertung herauszukriegen.
Dabei gibt es 2 Probleme:
- Das Produkt soll über die gesamte Dauer angezeigt werden (z. B. es wird über 3 Schichten produziert, also soll es auch 3 Mal da stehen über die gesamte Dauer.).
- Es kann vorkommen, dass in einer Schicht auf einer Maschine 2 Produkte nacheinander laufen. Wie kann ich das abbilden?

Hoffentlich könnt ihr mir helfen. Ich bin sehr verzweifelt.

Gruß Anne

  

Betrifft: AW: Formel??? von: fcs
Geschrieben am: 03.12.2009 17:41:07

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 <= ZeitpunktEnde) _
            Or SchichtStart = .Cells(ZeileAusw, 2).Value _
            Or SchichtEnde = .Cells(ZeileAusw, 2).Value Then
            If IsEmpty(.Cells(ZeileAusw, SpalteMa)) Then
              .Cells(ZeileAusw, SpalteMa).Value = Produkt
            Else
              .Cells(ZeileAusw, SpalteMa).Value = .Cells(ZeileAusw, SpalteMa).Value & vbLf &  _
Produkt
            End If
          End If
        Next
      End With
    Next
  End With
End Sub



  

Betrifft: AW: Formel??? von: Anne
Geschrieben am: 04.12.2009 07:54:15

Guten Morgen,

vielen Dank für deine Antwort!
Aber das genau so kopiert, aber wenn ich das Makro ausführe, macht der gar nichts???

Gruß Anne


  

Betrifft: AW: Formel??? von: Anne
Geschrieben am: 04.12.2009 08:08:21

Hallo,

ich habe mich geirrt. Der hat doch was gemacht. Aber auf Ma1 und Ma3 sind Lücken in der Darstellung.

Gruß Anne


  

Betrifft: AW: Formel??? von: fcs
Geschrieben am: 04.12.2009 14:46:35

Hallo Anne,

du muss im Blatt Auswertung die Reihenfolge der Schichten für den Tag ändern

Die Nachtschicht eines Tages beginnt immer um 22:00 Uhr. Deshalb die Nachtschicht als 3. Schicht eines Tages.

24.11.2009	24.11.2009 Früh
24.11.2009	24.11.2009 Spät
24.11.2009	24.11.2009 Nacht
25.11.2009	25.11.2009 Früh
25.11.2009	25.11.2009 Spät
25.11.2009	25.11.2009 Nacht
Gruß
Franz


Beiträge aus den Excel-Beispielen zum Thema "Formel???"