Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Makro - Eine Spalte sortieren, aber nur wenn andere Spalte nicht "Null" enthält
#1
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.
   

   
Antworten Top
#2
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

HIJ
1Vor der SortierungSpalte ausblenden
21001.05.2015
32005.01.2015
410017.06.2015
51506.02.2015
68031.08.2015
7-13.05.2015x
81122.12.2015
9818.11.2015
10017.07.2015x
11
12Sortiert
131122.12.2015
14818.11.2015
158031.08.2015
1610017.06.2015
171001.05.2015
181506.02.2015
192005.01.2015
20017.07.2015x
21-13.05.2015x
Formeln der Tabelle
ZelleFormel
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.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Antworten Top
#3
OK, danke
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste