Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1532to1536
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
richtig sortieren und filtern
05.01.2017 20:20:00
Fred
Hallo Experten,
Ich möchte in Spalte "L" die Leeren Zellen nach unten sortieren und in Spalte "AB" absteigend Sortieren und nutze folgenden Code
Private Sub CommandButton1_Click()
With ActiveSheet
If .AutoFilterMode Then
If .FilterMode Then .ShowAllData
End If
End With
ActiveSheet.Range("$A$5:$BH$5000").AutoFilter Field:=12, Criteria1:=""
Range("A6:BH5000").Sort Key1:=Range("AB5"), Order1:=xlDescending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
End Sub
funzt aber nicht,- jede Sortierung für sich klappt, aber wenn ich es zusammen lege, eben nicht.
Kann mich bitte jemand auf den Fehler aufmerksam machen.
Gruß
Fred

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: richtig sortieren und filtern
05.01.2017 20:42:54
Daniel
Hi
du sortierst ja auch nicht die Leerzellen nach unten sondern filterst diese aus.
des weiteren ist es nicht sinnvoll, in gefilterten Tabellen zu sortieren.
außerdem ist dein Kriterium AB5 außerhalb des Sortierbereichs, der beginnt erst ab Zeile 6
dh du musst den Autofilter weglassen und gleichzeig nach Spalte AB und L sortieren:
Range("A6:BH5000").Sort Key1:=Range("L6"), order1:=xlascending, Key2:=Range("AB6"), order2:=xldescending, header:=xlno
oder du sortierst erst die Leerzellen in Spalte L nach unten und sortierst dann den Rest ohne diese Zeilen nach Spalte AB:
Range("A6:BH5000").Sort key1:=Range("L6"), order1:=xlascending, header:=xlno
Range("A6:BH" & Range("L5").End(xldown).Row).Sort Key1:=Range("AB6"), order1:=xldescending, header:=xlno
Gruß Daniel
Anzeige
AW: richtig sortieren und filtern
05.01.2017 21:03:48
Fred
Hallo Daniel,
die zweite Möglichkeit kommt meinem "Wunsch" schon sehr nah.

Range("A6:BH5000").Sort key1:=Range("L6"), order1:=xlascending, header:=xlno
Range("A6:BH" & Range("L5").End(xldown).Row).Sort Key1:=Range("AB6"), order1:=xldescending, header:=xlno
Jetzt sind allerdings in Spalte "AB" Fehlerwerte (#DIV/0!) die gleich oben angeführt werden. Können die evt. auch mit ausgefiltert werden?
Gruß
Fred
AW: richtig sortieren und filtern
05.01.2017 21:16:12
Daniel
Hi
wenn du fertig sortiert hast, kannst du immer noch den Filter drauf setzen.
aber immer erst sortieren, dann filtern.
Da Excel im normalfall in gefilterten Tabellen nur die sichtbaren Zeilen bearbeitet, kann es zu problemen kommen, wenn du in gefilterten Tabellen sortierst.
ansonsten, fehlerwerte kommen in der Sortierhierachie ganz am schluß, dh wenn du absteigend sortierst, eben ganz oben.
oder du musst halt noch einen weiteren sortierschritt einlegen, dh erst nach Spalte AB aufsteigend sortiern, dann sind die Fehler in AB alle unten.
dann musst du ermitteln, in welcher Zeile der erste Fehlerwert steht und dann dann die Zeilen oberhalb der Fehlerwerte wieder absteigend sortieren.
also etwa so, der genaue Code hängt noch davon ab, ob in Spalte AB festwerte oder formeln stehen (beides in Mischung wäre schlecht)
Range("A6:BH5000").Sort key1:=Range("L6"), order1:=xlascending, header:=xlno
Range("A6:BH" & Range("L5").End(xldown).Row).Sort Key1:=Range("AB6"), order1:=xlascending,  _
header:=xlno
Range("AB6:AB" & Range("L5").End(xldown).Row).SpecialCells(xlcelltypeformulas, 7).EntireRow.Sort Key1:=Range("AB6"), order1:=xldescending, header:=xlno
Gruß Daniel
Anzeige
Dank an Daniel
05.01.2017 21:36:46
Fred
Hallo Daniel,
danke für deine ausführlichen Erklärungen und Code-Beispiele!
Nun verstehe ich es überhaupt, was ich da tippe oder kopiere .....
Gruß
Fred

243 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige