Sortieren mit Vorgabe

Dieses Thema Sortieren mit Vorgabe im Forum "Microsoft Office Suite" wurde erstellt von prak05, 8. Juli 2005.

Thema: Sortieren mit Vorgabe Hallo Leute, stehe wieder vor einem für Anfänger (wie mich  :-X) unlösbaren Problem. Ich muss eine Exceltabelle mit...

  1. Hallo Leute,
    stehe wieder vor einem für Anfänger (wie mich  :-X) unlösbaren Problem.
    Ich muss eine Exceltabelle mit 5 Spalten nach mehreren Kriterien sortieren.
    Die 5 Spalten sind folgendermaßen formatiert:

    D LC01 01.05.2005 34 2678
    A RH07 02.05.2005 0 0
    B RC02 02.05.2005 0 0

    1. Spalte Schicht, 2.Spalte Werkzeug, 3.Spalte Datum, 4. Spalte Ausschuss, 5.Spalte Stückzahl

    Jetzt müssen die Daten so ausgegeben werden:

    Pro Tag und Pro Schicht Aufteilung in RC/LC und RH/LH Werkzeuge und dafür jeweils die Daten Ausschuss und Stückzahl in ein Feld Schreiben.

    Wäre für Eure Hilfe wirklich dankbar. :)
    Beste Grüße Prak
     
  2. Hallo prak05,

    probier mal diesen Makro aus, ob da ungefähr das ist was du suchst.

    Zur Ausführung muß deine Tabelle aktiv sein.

    Der Makro legt dann eine Kopie dieses Blattes an und verdichtet die Daten.

    Gruß Matjes :)
    Code:
    Option Explicit
      
      
    Sub ZusammenfassungDerMessergebnisse()
    
     ->Quelldaten Beschreibung
     ->Spalten
      Const c_SP_Schicht = 1
      Const c_SP_Werkzeug = 2
      Const c_SP_Datum = 3
      Const c_SP_Ausschuss = 4
      Const c_SP_Stueckzahl = 5
     ->Zeilen
      Const c_Z_ersteWertZeile = 2
      
     ->Ersatzstrings LC/RC und LH/RH
      Const c_Sorte_LCRC = LC/RC
      Const c_Sorte_LHRH = LH/RH
      
      Dim ws As Worksheet, r As Range
      Dim l_rows As Long, x As Long
      Dim s_Werkzeugsorte As String
      
      Set ws = ActiveSheet
     ->Blatt kopieren
      ws.Copy After:=ws
      Set ws = ActiveSheet
     ->Zeilenanzahl feststellen
      l_rows = ws.Cells(ws.Rows.Count, c_SP_Schicht).End(xlUp).Row
      
     ->Werkzeug durch Werkzeug-Sorte ersetzen
      For x = c_Z_ersteWertZeile To l_rows
        s_Werkzeugsorte = UCase(Left(ws.Cells(x, c_SP_Werkzeug).Value, 2))
        If s_Werkzeugsorte = LC Or s_Werkzeugsorte = RC Then
          ws.Cells(x, c_SP_Werkzeug).Value = c_Sorte_LCRC
        ElseIf s_Werkzeugsorte = LH Or s_Werkzeugsorte = RH Then
          ws.Cells(x, c_SP_Werkzeug).Value = c_Sorte_LHRH
        Else
          MsgBox (Unbekanntes Werkzeug in Zeile  & x)
          ws.Cells(x, c_SP_Werkzeug).Select
          GoTo Aufraeumen
        End If
      Next
      
     ->Sortierbereich definieren
      Set r = ws.Range( _
                Cells(c_Z_ersteWertZeile, c_SP_Schicht), _
                Cells(l_rows, c_SP_Stueckzahl))
      
     ->Nach Tag und Schicht und Werkzeugkennung sortieren
      r.Sort _
        Key1:=ws.Cells(c_Z_ersteWertZeile, c_SP_Datum), _
        Order1:=xlAscending, _
        Key2:=ws.Cells(c_Z_ersteWertZeile, c_SP_Schicht), _
        Order2:=xlAscending, _
        Key3:=ws.Cells(c_Z_ersteWertZeile, c_SP_Werkzeug), _
        Order3:=xlAscending, _
        Header:=xlNo
      
     ->für gleiche TAG/SCHICHT/WERKZEUGKENNUNG zusammenfassen
      For x = l_rows To c_Z_ersteWertZeile + 1 Step -1
        If (ws.Cells(x, c_SP_Datum).Value = ws.Cells(x - 1, c_SP_Datum).Value) And _
          (ws.Cells(x, c_SP_Schicht).Value = ws.Cells(x - 1, c_SP_Schicht).Value) And _
          (ws.Cells(x, c_SP_Werkzeug).Value = ws.Cells(x - 1, c_SP_Werkzeug).Value) Then
          
         ->gleich -> Werte auf x-1 aufaddieren
          ws.Cells(x - 1, c_SP_Ausschuss).Value = _
          ws.Cells(x - 1, c_SP_Ausschuss).Value + ws.Cells(x, c_SP_Ausschuss).Value
          ws.Cells(x - 1, c_SP_Stueckzahl).Value = _
          ws.Cells(x - 1, c_SP_Stueckzahl).Value + ws.Cells(x, c_SP_Stueckzahl).Value
         ->Zeile x löschen
          ws.Rows(x).Delete
        End If
      Next
      
    Aufraeumen:
      Set ws = Nothing: Set r = Nothing
    End Sub
     
  3. Hallo Matjes,
    erstmal danke für deine Hilfe.
    Leider klappt das Auswerten noch nicht so ganz.  :-\
    Es passiert zwar irgendetwas, aber es bleiben immer noch ein paar Zeilen stehen.
    Das Blatt wird kopiert, aber keine Auswertung.
    Habe hier noch ein ausführlicheres Beispiel angehängt.
    Wäre dir sehr dankbar wenn du nochmal drüberschauen könntest.
    Beste grüße Prak

    P.S.: Schichten gibts es A,B,D aber mehrere Werkzeuge (mehrere LC,LH,RH,RC) Datum jeweils immer einen ganzen Monat.
    Das hier nur Beispiel für einen Tag:

    A LC01 01.04.2005 0 0
    A LC02 01.04.2005 0 0
    A LH05 01.04.2005 0 0
    A LH08 01.04.2005 0 0
    A RC01 01.04.2005 0 0
    A RC02 01.04.2005 0 0
    A RH08 01.04.2005 0 0
    A RH10 01.04.2005 0 0
    A RH11 01.04.2005 0 0
    A RH12 01.04.2005 0 0
    B LC01 01.04.2005 11 239
    B LC02 01.04.2005 0 0
    B LH05 01.04.2005 0 0
    B LH08 01.04.2005 0 0
    B RC01 01.04.2005 0 0
    B RC02 01.04.2005 1 278
    B RH08 01.04.2005 2 8
    B RH11 01.04.2005 4 184
    B RH12 01.04.2005 2 239
    D LC01 01.04.2005 23 199
    D LC02 01.04.2005 0 0
     
  4. Hi prak05,

    welche Zusammenfassung soll denn da herauskommen?

    Könntest Du das mal explicit aufschreiben.

    Gruß Matjes :)
     
  5. Hallo Matjes hab dir eine Datei geschickt.
    Grüße Prak
     
Die Seite wird geladen...

Sortieren mit Vorgabe - Ähnliche Themen

Forum Datum
Dateien sortieren Windows XP Forum 18. März 2013
Dateien sortieren ? Windows 7 Forum 27. Okt. 2011
Datein in einem Ordner selber sortieren Windows XP Forum 20. Jan. 2011
DVD-Liste automatisch sortieren lassen Microsoft Office Suite 16. Apr. 2013
Automatisches Sortieren bei Eingabe Microsoft Office Suite 16. Jan. 2012