Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Sortieren wenn >0

Sortieren wenn >0
sanktflorian
Hallo,
ich habe hier ein funktionierendes VBA.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.ScreenUpdating = False
Set Bereich = Range("B3:K32")   'Bereich, den du sortieren willst
Bereich.Sort Key1:=Range("J3"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal       'sortiert nach Spalte J, beginnend bei Zeile3, _
aufsteigend sortiernd
Application.ScreenUpdating = True
End Sub
Nun würde ich gerne das die 0 in J3 unten steht, aber alles was größer ist als 0 vom kleinsten zum größten sortiert wird.
Mit freundlichem Gruß
Sankt
Anzeige

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

Betreff
Benutzer
Anzeige
AW: Sortieren wenn >0
31.08.2009 17:02:46
Oberschlumpf
Hi
Wo ist denn die 0 in J3? Ich sehe keine. Vielleicht hast du ja für uns eine xls-Bsp-Datei mit Bsp-Daten.
Ciao
Thorsten
AW: Sortieren wenn >0
31.08.2009 18:11:40
sanktflorian
Hallo Thorsten,
Hier eine Probedatei
https://www.herber.de/bbs/user/64139.xls
die Null spieler in der der Spalte gesamt sollen unten stehen.
Und alles was größer 0 ist soll sich vom kleinsten aufwärts sortieren so wie es eigentlich auch funktioniert.
Gruß
Sankt
Anzeige
AW: Sortieren wenn >0
31.08.2009 18:27:57
Tino
Hallo,
teste mal diese Version.
Sub SortSpecial()
Dim oSh As Worksheet
Set oSh = Sheets("Tabelle1") 'Tabellenname angeben
With oSh
With .UsedRange.Columns(.UsedRange.Columns.Count).Offset(1, 1)
.FormulaR1C1 = "=IF(RC10=0,10^307,RC10)"
oSh.UsedRange.Offset(1, 0).Sort Key1:=.Cells(1, 1), Order1:=xlAscending, Header:=xlNo
.EntireColumn.Delete
End With
End With
End Sub
Verstehe nur nicht warum erst ab Zeile 3 Sortiert werden soll,
mein Code Sortiert ab Zeile 2 also nach der Überschrift.
Gruß Tino
Anzeige
AW: Sortieren wenn >0
31.08.2009 18:55:15
Daniel
Hi
wenn die Werte in Spalte J feste Werte sind und keine Formeln (in deiner Beispieldatei sind des feste Werte), könntest du auch diesen Code hier verwenden:
Sub test()
Dim bereich As Range
Application.ScreenUpdating = False
Range("J:J").Replace 0, True, xlWhole
Set bereich = Range("B2:K31")   'Bereich, den du sortieren willst
bereich.Sort Key1:=Range("J3"), Order1:=xlAscending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal       'sortiert nach Spalte J, beginnend bei Zeile3, _
aufsteigend sortiernd
Range("J:J").Replace True, 0, xlWhole
Application.ScreenUpdating = True
End Sub
Fett sind die für dein Problem relevanten Änderungen,
Kursiv sind Anpassungen im Code, damit der Code für deine Beispieldatei richtig funktioniert.
Gruß, Daniel
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige