Microsoft Excel

Herbers Excel/VBA-Archiv

Sortieren + leere Zellen ignorieren

Betrifft: Sortieren + leere Zellen ignorieren von: Niels
Geschrieben am: 26.08.2004 16:53:26

Hallo,

ich habe wiedermal ein kleines Problem beim Makro schreiben und komme nicht wirklich weiter...
Kurz zur Erklärung:

Ich habe zwei Tabellenblätter. (Tabelle "AAA" + Tabelle "BBB")
In AAA sind die Zellen A2:A101 für Text vorgesehen

Ich ziehe mir in BBB - A2:A101 den Text aus AAA über eine Wenn-Dann-Formel
(=if(istext('AAA'!A1);'AAA'!A1;"")

Jetzt möchte ich per Makro in BBB die Zeilen 2-101 alphabetisch sortieren.

Sub Sortalpha()
    Rows("2:101").Select
    Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlGuess, _
    OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End Sub



Problem:

Bei aufsteigender Sortierung legt er mir die Zeilen, die aufgrund der Wenn-Dann-Bedingung leer sind, aber nach oben.

Ich möchte erreichen, dass leere Zellen ignoriert werden und der Makro zwar den gesamten Bereich (2:101) aufsteigend sortiert, aber die leeren Zeilen hinten anstellt.

Wie kann ich das lösen?

Vielen Dank im Voraus für die Hilfe

Gruß

Niels
  


Betrifft: AW: Sortieren + leere Zellen ignorieren von: HerbertH
Geschrieben am: 26.08.2004 17:22:10

hallo Niels,
ich habe das immer so gelöst:

(=if(istext('AAA'!A1);'AAA'!A1;"zzz")

die "zzz" habe ich mit Bedingter Formatierung verschwinden lassen...
ob das der Weisheit letzter Schluss ist, weis ich auch nicht...
gruß Herbert


  


Betrifft: AW: Sortieren + leere Zellen ignorieren von: Das ist zumindest ´ne Idee...
Geschrieben am: 26.08.2004 18:10:24

Hallo Herbert,

es scheint ja offenbar keine VBA Lösung zu geben!??
Ich werd´s mal so machen.

Vielen Dank für Deine Hilfe

Viele Grüße

Niels


  


Betrifft: AW: Sortieren + leere Zellen ignorieren von: andre
Geschrieben am: 29.08.2004 09:12:43

... und das ist zumindest mal 'ne VBA - Lösung ;-)
erst absteigend sortieren, dann die leere Zelle feststellen, dann nur bis Zeile dahin - 1 sortieren ...
Sub Sortalpha()
Dim zelle As Range
    Rows("2:101").Sort Key1:=Range("A2"), Order1:=xlDescending, Header:=xlGuess, _
    OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, dataoption1:=xltextasnumbers
Set zelle = Columns("A:A").Find(What:="", After:=[a1], LookIn:=xlValues, LookAt:= _
        xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:= _
        False, SearchFormat:=False)
If Not zelle Is Nothing Then
    Rows("2:" & zelle.Row - 1).Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlGuess, _
    OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, dataoption1:=xltextasnumbers
End If
End Sub



 

Beiträge aus den Excel-Beispielen zum Thema "Sortieren + leere Zellen ignorieren"