online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon hans-werner vom 08.12.2021, 15:57 Options

Sortierung mit Buchstaben und Leerstellen

Hallo Forum,
ich muß eine Tabelle nach einer Spalte sortieren, deren Zellen nur Buchstaben oder Leerstellen enthalten.
Dabei werden, egal ob aufsteigend oder absteigend sortiert wird, die Zeilen, die Leerstellen in der sortierten Spalte enthalten, immer hinter die Zeilen mit Buchstaben sortiert.
Ich möchte die Zeilen mit Leerstellen aber vor die Zeilen mit Buchstaben sortiert haben.
Als Notbehelf habe ich vor dem Sortieren alle zu sortierenden Zellen die Leerstellen enthalten mit "1" gefüllt, aufsteigend sortiert und nach dem Sortieren die "1" wieder entfernt:
Sub Sortieren()      
    Dim cell As Range
    For Each cell In Range("M10:M1200")
        If cell.Value = "" And cell.Offset(0, -9).Value > "" Then
           cell.Value = "1"
        End If
    Next    
    Range("M10:M1200").Select
    Selection.Sort Key1:=Range("M10"), Order1:=xlAscending, _
                   Header:=xlNo, OrderCustom:=1, MatchCase:=False _
        , Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, DataOption2:= _
        xlSortNormal    
    Dim cell1 As Range
    For Each cell1 In Range("M10:M1200")
        If cell1.Value = "1" And cell1.Offset(0, -9).Value > "" Then
           cell1.Value = ""
        End If
    Next
End Subb
Das Ergebnis ist wie gewünscht, die Sortierung dauert allerdings zu lange!
Gibt es eine elegantere Lösung?

Gruss
hans-werner


Antwort schreiben

Antwort 1 von rainberg vom 08.12.2021, 16:39 Options

Hallo hans-werner,

Zitat:
Das Ergebnis ist wie gewünscht, die Sortierung dauert allerdings zu lange!


Leider kann ich das Makro nicht schneller machen, aber habe es mal (unverändert) getestet.
Die Laufzeit bei 1200 Zeilen ist ungefähr 1 s, das sollte doch nicht zu langsam sein.

Liegt vielleicht an Deinem System?

Gruß
Rainer

Antwort 2 von hans-werner vom 08.12.2021, 17:19 Options

Hallo Rainer,
die Sortierung ist nicht das Problem, sondern
For Each cell In Range......

Im ungünstigsten Fall, wenn in alle 1200 Zellen der Wert "1" eingestellt und wieder entfernt wird, dauert die Sortierung auf meinem Rechner ca. 1:30 Minuten!!!

Ich glaube nicht, dass mein Rechner in diesem Fall der Hemmschuh ist, werde das aber noch auf einem anderen Rechner probieren!

Gruss
hans-werner

Antwort 3 von rainberg vom 08.12.2021, 17:59 Options

Hallo hans-werner,

vielleicht erstellt Dir ein Makrospezialist ein schnelleres Makro.

Nur zur Information, auch der ungünstige Fall benötigt bei mir nicht länger als 1 sec.

Hardware:
Prozessor: Intel Core Quad CPU Q9400 2.66GHz
inst. RAM: 4096 MB verwendbar: 3072 MB

Software:
Windows 7 Home Premium 32 Bit
Office 2007 Ultimate SP2

Scheint doch an Deinem Rechner zu liegen.

Gruß
Rainer

Antwort 4 von nighty vom 09.12.2021, 07:43 Options

hi all ^^

nicht getestet

gruss nighty

Option Explicit
Sub Sortieren()
Dim Zeilen As Long
    ReDim ArrD(1191, 1) As Variant
    ReDim ArrM(1191, 1) As Variant
    ArrD() = Range("D10:D1200")
    ArrM() = Range("M10:M1200")
    For Zeilen = 1 To 1191
        If ArrM(Zeilen, 1) = "" And ArrD(Zeilen, 1) > "" Then ArrM(Zeilen, 1) = "1"
    Next Zeilen
    Range("M10:M1200") = ArrM()
    Range("M10:M1200").Sort Key1:=Range("M10"), Order1:=xlAscending, Header:=xlNo, OrderCustom:=1, Orientation:=xlTopToBottom
    For Zeilen = 1 To 1191
        If ArrM(Zeilen, 1) = "1" And ArrD(Zeilen, 1) > "" Then ArrM(Zeilen, 1) = ""
    Next Zeilen
    Range("M10:M1200") = ArrM()
End Sub 

Antwort 5 von hans-werner vom 10.12.2021, 21:43 Options

@ nighty,
Danke für den Lösungsvorschlag, der Sort läuft definitiv schneller!

Zwar braucht's immer noch länger als 10 s, aber das liegt wohl doch
an meiner Softwareumgebung (Office 2007 unter Windows XP als
Virtuelle Maschine auf einem (schnellen) iMac mit Mac OS X 10.6.2)!

Gruss
hans-werner

Ähnliche Themen

Buchstaben addieren?
korfuweb  18.09.2008 - 41 Hits - 7 Antworten

Excel - Sortierung leere Zellen an den Anfang stellen
andreas_3  09.10.2008 - 30 Hits - 3 Antworten

Sortierung in Excel 2007 speichern
dose  10.12.2008 - 26 Hits - 2 Antworten

Sortierung nach Geburtstagen
Peter43  07.01.2009 - 165 Hits - 3 Antworten

excel zahlen und buchstaben trennen
Apfel  17.11.2009 - 530 Hits - 4 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Mon Jan 26 01:23:17 2026