Guten Morgen,
ich habe folgendes Makro vorliegen, mit dem Spalte I absteigend sortiert wird:
Sub Sort()
Range("A3:W287").Sort Key1:=Range("I3"), Order1:=xlDescending, _
Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
End Sub
Allerdings sind in Spalte H Werte eingetragen, und wenn diese Spalte H gleich Null ist, dann soll diese Zeile nicht in der Sortierung berücksichtigt werden, oder zumindest nicht oben erscheinen, auch wenn in diesem Fall in Spalte I der höchste Wert steht.
Falls das zu umständlich ausgedrückt ist, ich habe zwei Screenhots beigefügt, einmal mit dem Sortierergebnis mit angegebenem Makro und einmal so, wie es sein soll.
Für Hilfe bin ich dankbar.
[
attachment=2771]
[
attachment=2772]
Hi,
ich würde an deiner Stelle eine Hilfsspalte anlegen (die einfach ausgeblendet wird), in der Nullwerte oder Texte mit einem "x" gekennzeichnet werden. Danach sortierst du in der Reihenfolge Spalte J A-Z und Spalte I Werte aufsteigend.
Anbei ein Tabellenausschnitt, wie ich mir das vorstelle und ein dazugehöriges
aufgezeichnetes Makro.
Tabelle3 | H | I | J |
1 | Vor der Sortierung | | Spalte ausblenden |
2 | 10 | 01.05.2015 | |
3 | 20 | 05.01.2015 | |
4 | 100 | 17.06.2015 | |
5 | 15 | 06.02.2015 | |
6 | 80 | 31.08.2015 | |
7 | - | 13.05.2015 | x |
8 | 11 | 22.12.2015 | |
9 | 8 | 18.11.2015 | |
10 | 0 | 17.07.2015 | x |
11 | | | |
12 | Sortiert | | |
13 | 11 | 22.12.2015 | |
14 | 8 | 18.11.2015 | |
15 | 80 | 31.08.2015 | |
16 | 100 | 17.06.2015 | |
17 | 10 | 01.05.2015 | |
18 | 15 | 06.02.2015 | |
19 | 20 | 05.01.2015 | |
20 | 0 | 17.07.2015 | x |
21 | - | 13.05.2015 | x |
Formeln der Tabelle |
Zelle | Formel | J2 | =WENN(ODER(H2<1;ISTTEXT(H2));"x";"") | J3 | =WENN(ODER(H3<1;ISTTEXT(H3));"x";"") | J4 | =WENN(ODER(H4<1;ISTTEXT(H4));"x";"") | J5 | =WENN(ODER(H5<1;ISTTEXT(H5));"x";"") | J6 | =WENN(ODER(H6<1;ISTTEXT(H6));"x";"") | J7 | =WENN(ODER(H7<1;ISTTEXT(H7));"x";"") | J8 | =WENN(ODER(H8<1;ISTTEXT(H8));"x";"") | J9 | =WENN(ODER(H9<1;ISTTEXT(H9));"x";"") | J10 | =WENN(ODER(H10<1;ISTTEXT(H10));"x";"") | J13 | =WENN(ODER(H13<1;ISTTEXT(H13));"x";"") | J14 | =WENN(ODER(H14<1;ISTTEXT(H14));"x";"") | J15 | =WENN(ODER(H15<1;ISTTEXT(H15));"x";"") | J16 | =WENN(ODER(H16<1;ISTTEXT(H16));"x";"") | J17 | =WENN(ODER(H17<1;ISTTEXT(H17));"x";"") | J18 | =WENN(ODER(H18<1;ISTTEXT(H18));"x";"") | J19 | =WENN(ODER(H19<1;ISTTEXT(H19));"x";"") | J20 | =WENN(ODER(H20<1;ISTTEXT(H20));"x";"") | J21 | =WENN(ODER(H21<1;ISTTEXT(H21));"x";"") |
|
Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8
Code:
Option Explicit
Sub Sort_J_I()
'
' Sort_J_I Makro
'
'
ActiveWorkbook.Worksheets("Tabelle3").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Tabelle3").Sort.SortFields.Add Key:=Range("J1:J10" _
), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("Tabelle3").Sort.SortFields.Add Key:=Range("I1:I10" _
), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Tabelle3").Sort
.SetRange Range("H1:J10")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
Übrigens, bitte poste keine Bilder. Aus diesen lässt sich nur mit großem Aufwand eine Tabelle im Nachbau erstellen.
Für gezielte Hilfe solltest du deshalb eine anonymisierte
Mustertabelle hochladen. (KLICK!) In diesem Text findest du einen weiteren Link, wie Tabellenausschnitte eingestellt werden können.
Meistens reicht ein relevanter Tabellenausschnitt völlig aus – wichtig ist nur, dass du auch deine Formeln integriert hast.
Bitte passe die Mustertabelle deiner Originaldatei an, damit eventuelle zusätzliche Nachfragen vermieden werden können.