Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Sortierung erfolgt nicht wunschgemäß

Sortierung erfolgt nicht wunschgemäß
31.10.2007 17:15:00
Fritz_W
Hallo Excelfreunde,
ich möchte meine Tabelle sortieren, mit dem ersten (Sortier-)Kriterium soll eine Spalte sortiert werden, deren Zellen Formeln enthält, aus denen als Werte entweder eine Zahl oder der Wert "" resultiert.
Ich möchte erreichen, dass zunächst alle Zellen mit den Zahlen und diese absteigend angeordnet werden, anschließend die Zellen mit den Formeln, deren Wert "" ergibt.
Mit dem nachfolgend aufgezeichneten Code funktioniert das eben nicht, da zunächst die "" Zellen erscheinen und erst dann die Zellen mit den Zahlen.
Wie kann ich das entsprechend meinen oben beschriebenen Vorstellungen realisieren.
Vielen Dank für eure Unterstützung.
mfg
Fritz

Sub Sortieren_Alter_abst()
' Sortieren Makro
' Makro am 31.10.2007 von Fritz aufgezeichnet
Range("A2:M1000").Select
Selection.Sort Key1:=Range("E2"), Order1:=xlDescending, Key2:=Range("L2") _
, Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _
False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, DataOption2 _
:=xlSortNormal
End Sub


Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Sortierung erfolgt nicht wunschgemäß
31.10.2007 17:38:00
Erich
Hallo Fritz,
eine etwas allgemeinere Lösung, bei der man die Sortierreihenfolgen verschieder Typen festlegen _ kann:

Option Explicit
Sub Test_Sort_var()
Sort_var 1, 1, "abcde"
End Sub
Sub Sort_var(intSpalte As Integer, intAufAb As Boolean, strSortfolge As String)
'              |                    |                  5 Zeichen für versch. Typen:
'              |                    |                     a Zahlen
'              |                    |                     b Texte
'              |                    |                     c Wahrheitswerte
'              |                    |                     d leere Zellen
'              |                    |                     e Fehlerwerte
'              |                    1 für auf- 2 für absteigend
'              Nr. der Spalte, nach der sortiert werden soll          ' 23.01.2007 gi
Dim TT(1 To 5) As String, lngZ As Long, Calc As XlCalculation
If Len(strSortfolge)  5 Then Exit Sub
For lngZ = 1 To 5
TT(lngZ) = Mid(strSortfolge, lngZ, 1)
Next lngZ
Calc = Application.Calculation
Application.ScreenUpdating = False
Application.EnableEvents = False
Application.Calculation = xlCalculationManual
'  -------------------------------------------------------- Sortspalte generieren
lngZ = Cells(Rows.Count, intSpalte).End(xlUp).Row
Columns(intSpalte).Insert
Cells(1, intSpalte) = "SortKey"
Range(Cells(2, intSpalte), Cells(lngZ, 1)).FormulaLocal = _
"=WENN(ISTZAHL(B2);""" & TT(1) & """;" _
& "WENN(ISTLOG(B2);""" & TT(3) & """;" _
& "WENN(ISTLEER(B2);""" & TT(4) & """;" _
& "WENN(ISTFEHLER(B2);""" & TT(5) & """;""" & TT(2) & """))))"
'  -------------------------------------------------------- Sortieren
Cells(1, intSpalte).Sort _
Key1:=Cells(1, intSpalte), Order1:=xlAscending, _
Key2:=Cells(1, intSpalte + 1), Order2:=intAufAb, _
Header:=xlYes, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
'  -------------------------------------------------------- Aufräumen
Columns(intSpalte).Delete
Application.Calculation = Calc
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: Sortierung erfolgt nicht wunschgemäß
31.10.2007 17:52:51
Fritz_W
Hallo Erich,
wieder einmal erste Sahne, was Du mir hier anbietest.
Besten Dank
Viele Grüße
Fritz.

AW: Sortierung nach Datentypen
31.10.2007 18:43:35
Erich
Hallo Fritz,
danke für deine Rückmeldung!
Leider hatte ich einen Fehler drin: intAufAb soll kein Boolean sein
(könnte dann auch nicht die Werte 1 und 2 annehmen).
Ich habs geändert in soAufAb as XlSortOrder,
mit den möglichen Werten 1 (xlAscending) und 2 (xlDescending).

Sub Sort_var(intSpalte As Integer, soAufAb As XlSortOrder, strSortfolge As String)
'              |                    |                  5 Zeichen für versch. Typen:
'              |                    |                     a Zahlen
'              |                    |                     b Texte
'              |                    |                     c Wahrheitswerte
'              |                    |                     d leere Zellen
'              |                    |                     e Fehlerwerte
'              |                    1 für auf- 2 für absteigend
'              Nr. der Spalte, nach der sortiert werden soll          ' 23.01.2007 gi
Dim TT(1 To 5) As String, lngZ As Long, Calc As XlCalculation
If Len(strSortfolge)  5 Then Exit Sub
For lngZ = 1 To 5
TT(lngZ) = Mid(strSortfolge, lngZ, 1)
Next lngZ
Calc = Application.Calculation
Application.ScreenUpdating = False
Application.EnableEvents = False
Application.Calculation = xlCalculationManual
'  -------------------------------------------------------- Sortspalte generieren
lngZ = Cells(Rows.Count, intSpalte).End(xlUp).Row
Columns(intSpalte).Insert
Cells(1, intSpalte) = "SortKey"
Range(Cells(2, intSpalte), Cells(lngZ, 1)).FormulaLocal = _
"=WENN(ISTZAHL(B2);""" & TT(1) & """;" _
& "WENN(ISTLOG(B2);""" & TT(3) & """;" _
& "WENN(ISTLEER(B2);""" & TT(4) & """;" _
& "WENN(ISTFEHLER(B2);""" & TT(5) & """;""" & TT(2) & """))))"
'  -------------------------------------------------------- Sortieren
Cells(1, intSpalte).Sort _
Key1:=Cells(1, intSpalte), Order1:=xlAscending, _
Key2:=Cells(1, intSpalte + 1), Order2:=soAufAb, _
Header:=xlYes, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
'  -------------------------------------------------------- Aufräumen
'   Columns(intSpalte).Delete
Application.Calculation = Calc
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub

Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: Sortierung nach Datentypen
31.10.2007 18:53:00
Fritz_W
Hallo Erich,
nochmals Dank und schönen Gruß
Fritz
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige