Verehrte Gemeinde,
ich bitte um Rat zu folgendem Problem:
Range("A4:N" & AnzZeilen + 1).Select
Selection.Sort Key1:=Range("K4"), Order1:=xlAscending, _
Key2:=Range("A4"), Order2:=xlAscending, _
Header:=xlNo, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal, _
DataOption2:=xlSortTextAsNumbers, _
DataOption3:=xlSortNormal
Range("A" & AnzZeilen + 2).Select
Der gezeigte Code Soll eine Artikelliste 2 x sortieren. Besser: Er soll sie in 2 Hälften teilen. In verkaufte und nicht verkaufte Artikel. In Spalte A stehen einfach die fortlaufenden Artikelnummern. In Spalte K wird nach einem Verkaufsvorgang der Name des Verkäufers eingetragen und damit der Artikel als "verkauft" gekennzeichnet.
Der Code soll also (Schritt 1) die Tabelle nach Artikelnummern sortieren. Für den Fall, daß ein Artikel als verkauft markiert ist, soll aber die Tabelle zweigeteilt werden (Schritt 2). Die obere Hälfte zeigt dann die verkauften Artikel nach Artikelnummern sortiert. Die untere Hälfte zeigt die noch nicht verkauften Artikel. Ebenfalls nach Artikelnummern sortiert.
Der Fehler im oben gezeigten Code liegt darin, daß die Tabelle tatsächlich in "verkaufte" und "nicht verkaufte" Artikel getrennt wird. Aber die Zeilen der "verkauften" Artikel natürlich nicht nach deren Artikelnummern, sondern den Namen der Verkäufer sortiert werden. Das Weglassen der Verkäufernamen bzw. der Ersatz durch ein einfaches "Verkauft"-Kennzeichen wäre die einfachste Lösung, ist aber leider keine Option.
Die Lösung soll so aussehen:
Vor dem Sortieren nach Artikelnummern soll für die Spalte K eine Prüfung ob "Zelle leer" oder "Zelle enthält Eintrag" und damit die Zweiteilung in "verkauft/nicht verkauft" stattfinden. Ich habe da sowas wie "if then" im Kopf, bin aber momentan überfordert.
Über einen guten Rat würde ich mich sehr freuen. Vielen Dank! Yorck
|