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

Nullen nach hinten sortieren

Forumthread: Nullen nach hinten sortieren

Nullen nach hinten sortieren
23.10.2006 10:58:44
Uli
Hallo zusammen,
ich möchte gerne Werte aufsteigend sortieren, dabei aber Nullen nach hinten sortieren. Wenn ich das in zwei Schritten über Wertelisten mache, sieht das ganze so aus und funktioniert einwandfrei:
Application.AddCustomList ListArray:=Array("1", "2", "3", "4", "0")
Range("A1:A9").Sort Key1:=Range("A1"), Header:=xlGuess, _
OrderCustom:=10, MatchCase:=False, Orientation:=xlTopToBottom
Ich möchte allerdings nicht jedesmal eine neue Liste anlegen und würde den ListArray am liebsten direkt in das Sort-Statement schreiben, kriege das aber nicht hin. Wenn die Null mit drin steht, bekomme ich grundsätzlich Fehler.
Ich stelle mir das eigentlich ungefähr so vor:
Range("A1:A9").Sort Key1:=Range("A1"), OrderCustom:=Array("1", "2", "3", "0"), Header:=xlGuess, ....
Hat jemand dazu eine gute Idee?
Vielen Dank im Voraus!
Uli
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Nullen nach hinten sortieren
23.10.2006 12:00:47
Peter
Hallo Uli,
was hälst du von der nachfolgenden Methode?
Es wird eine Hilfspalte eingefügt, in der die Werte = 0 eine 9, alle anderen eine 1 erhalten. Dann wird nach der Hilfsspalte und Spalte A sortiert.
Anschließend die Hilfsspalte wieder gelöscht.
Public

Sub Sortieren()
Dim lLetzte  As Long
Dim lZeile   As Long
Application.ScreenUpdating = False
lLetzte = IIf(Range("A65536") <> "", 65536, Range("A65536").End(xlUp).Row)
Columns("A").Insert Shift:=xlToRight
For lZeile = 1 To lLetzte
If Range("B" & lZeile).Value = 0 Then
Range("A" & lZeile).Value = 9
Else
Range("A" & lZeile).Value = 1
End If
Next lZeile
Range("A1:M" & lLetzte).Sort _
Key1:=Range("A1"), Order1:=xlAscending, _
Key2:=Range("B1"), Order2:=xlAscending, _
Header:=xlGuess, _
OrderCustom:=3, _
MatchCase:=False, _
Orientation:=xlTopToBottom
Columns("A").Delete Shift:=xlToLeft
Application.ScreenUpdating = True
End Sub

Viele Grüße Peter
Eine kurze Nachricht, ob es läuft, wäre nett - danke.
Anzeige
AW: Nullen nach hinten sortieren
23.10.2006 17:34:06
Uli
Hallo Peter,
grundsätzlich funktioniert Dein Workaround natürlich. Um ehrlich zu sein, suche ich allerdings eine etwas "schlankere" Lösung, da ich die Sortierung in ein sehr komplexes Sheet einbinden will, in dem sehr viele Berechnungen kreuz und quer laufen, und das Einfügen einer neuen Spalte würde sehr viel Umprogrammierungs- und Testaufwand bedeuten. Das insbesondere vor dem Hintergrund, dass ich die Sortierung gerne dynamisch für mehrere Spalte anbieten möchte...
Hast Du oder hat jemand anderes noch eine andere Idee? Ich hätte ja vermutet, dass eine Lösung analog zu meinem oben angedachten Weg möglich sein sollte!?
Viele Grüße und nochmal vielen Dank,
Uli
Anzeige
AW: Nullen nach hinten sortieren
25.10.2006 21:49:49
M@x
Hi,
ich weiß jetzt nicht ob du das so oder abgewandelt verwenden kannst:
man macht aus den Nullen Text zBsp etwa so:
=WENN(B6&gt0;B6;TEXT(B6;"0"))
wenn du das als VBA machst, gehts in der gleichen Spalte
Die Nullen als Text werden dann automatisch nach hinten sortiert
Gruss
M@x
Anzeige
AW: Nullen nach hinten sortieren
25.10.2006 22:40:40
Gerd
Hallo zusammen,
oder vielleicht doch per Code.
Voraussetzung: Im Range sind keine leeren Zelle u. nur Zellen mit Zahlen.

Sub test()
Dim strErsetzen
With Range("A1:A9")
strErsetzen = CStr(Application.WorksheetFunction.Max(.Cells) + 1)
.Replace what:="0", replacement:=strErsetzen, lookat:=xlWhole
.Sort Key1:=Range("A1"), Header:=xlGuess, OrderCustom:=1, _
MatchCase:=False, Orientation:=xlTopToBottom
.Replace what:=strErsetzen, replacement:="0", lookat:=xlWhole
End With
End Sub

Gruß
Gerd
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