Sortierung mittels VBA
#1
Hallo und guten Morgen,

ich habe folgendes VBA-Makro zum Sortieren:

Public dDate As Date

Public dTime As Date


Sub Sortieren()
'Startet die Sortierung und wiederholt sie alle 10 Sekunden

    Range("A2:T200").Sort _
        Key1:=Range("I2"), Order1:=xlDescending, _
        Key2:=Range("Q2"), Order2:=xlDescending, _

    Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
        
       
         dTime = Now + TimeValue("0:0:10")
         Application.OnTime dTime, "Sortieren"

End Sub

Damit werden mir alle 10 Sekunden die Spalten I und Q absteigend sortiert.

Allerdings ist das Problem, dass Spalte I vorrangig sortiert wird, es soll aber gleichberechtigt sortiert werden.
Ich meine damit, dass die Zeile ganz oben stehen soll, die entweder in Spalte I oder in Spalte Q den höchsten Wert (aktuellste Uhrzeit) enthält. 
Als kleinen Zusatz hätte ich noch anzubringen, dass Spalte Q nur berücksichtigt werden soll, wenn Spalte P keinen Text enthält bzw. größer Null ist. Alternativ dazu habe ich eine Hilfsspalte R, die 0 oder 1 ausgibt, wenn Spalte P einen Text enthält oder nicht.
Also: In Spalte R steht 1, wenn Spalte Q berücksichtigt werden soll bzw. in Spalte R steht eine 0, wenn Spalte Q nicht berücksichtigt werden soll.


Im Anhang ist ein Auszug aus der Tabelle, in der Hoffnung, dass das weiterhilft.


Angehängte Dateien
.xlsx   TestSortieren.xlsx (Größe: 12,22 KB / Downloads: 3)
Top
#2
Hallöchen,

wenn Du beide Spalten "gleichberechtigt" - also unabhängig voneinander - sortieren willst, dann mache zwei getrennte Sortierungen daraus.

Ob und welche Spalte Du sortierst, kannst Du auch einfach über die Bedingung regeln.

Im Prinzip

Wenn r=0 dann
sortiere nur I
oder
sortiere nur i
sortiere nur q
Ende wenn
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste