Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1064to1068
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Mehrere Sortierungen per VBA

Mehrere Sortierungen per VBA
31.03.2009 20:22:32
Thomas
Hallo VBA-ler,
ich muß in einer Tabelle mehrere Male sortieren. Da das bei 32x Markieren-Daten-Sortieren ziemlich nervig ist, wollte ich das ganze per VBA lösen. Dazu den Recorder benutzt und es gab auch ein Ergebniss was funktioniert.
Nun dachte ich mir, man könnte das in einer Schleife laufen lassen, damit nicht 32x im Makro der Sortiercode drin steht. Aber das will nicht klappen. Daher mal die Frage, wie kann ich das in einer Schleife laufen lassen? Die Sortieranforderungen sind immer die selben (3 Spalten, 5 Zeilen, zuerst nach Spalte1, dann nach Spalte2, jeweils absteigend).
Um das ganze für Euch so einfach wie möglich nachzuvollziehen, habe ich eine Beispieldatei erstellt:
https://www.herber.de/bbs/user/60888.xls
Vielen Dank für Eure Hilfe, Thomas

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

Betreff
Datum
Anwender
Anzeige
AW: Mehrere Sortierungen per VBA
31.03.2009 20:35:16
Erich
Hallo Thomas,
probiers mal mit

Private Sub CommandButton2_Click()
Dim sp As Long
For sp = 1 To 94 Step 3
Range(Cells(1, sp), Cells(5, sp + 3)).Sort _
Key1:=Cells(1, sp), Order1:=xlAscending, _
Key2:=Cells(1, sp + 1), Order2:=xlAscending, _
Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Next sp
End Sub

Range(Cells(1, sp)) klappt nicht, dafür steht einfach Cells(1, sp)
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

AW: Mehrere Sortierungen per VBA
31.03.2009 20:57:09
Thomas
Hallo Erich,
Jetzt bekomme ich zwar keinen Fehler, aber die Sortierung ist danach nicht richtig. Das Ergebnis ist da, wo nicht alle Zellen gefüllt sind, falsch. Da wird die zweite Zeit falsch sortiert und neben einer leeren Zelle der Anfangszeit geschrieben.
Gruß Thomas
Anzeige
AW: Mehrere Sortierungen per VBA
31.03.2009 21:28:54
Daniel
Hi
der Fehler ist folgender:

Range(Cells(1, sp), Cells(5, sp + 3)).Sort...


es muss heissen:


Range(Cells(1, sp), Cells(5, sp + 2)).Sort...


bei +3 ist der Sortierbereich 4 Spalten breit (1+3=4) und nicht nur 3 Spalten wie vorgegeben, dh es wird immer die erste Spalte vom nächsten Sortierbereich mit sortiert.
in solchen Fällen ist es oft besser, anstelle von


Range(Cells(1, sp), Cells(5, sp + 2)).Sort...

das hier zu schreiben:


Cells(1,sp).Resize(5, 3).Sort...


Gruß, Daniel

Anzeige
Das wars...
31.03.2009 21:36:05
Thomas
Hallo Daniel.
Genau da war der Fehler und eigentlich so einfach und logisch.
Denke Du hast auch gleich erkannt um was es sich handelt? Habe dein Makro für die Zeiten erkennen so geändert, das jetzt in einem unbenutzten Bereich die Zeiten nebeneinander ausgegeben werden, um dieses dann zu sortieren. Jetzt klappt das alles so super wie ich wollte.
Besten Dank.
Gruß Thomas

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige