Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
504to508
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
504to508
504to508
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Benutzerdefiniertes Sortieren per VBA

Benutzerdefiniertes Sortieren per VBA
26.10.2004 12:41:43
Lars
Der Anwender der Arbeitsmappe legt durch mehrere Angaben letztlich fest, welche Spalten in welcher Ordnung von welcher Tabelle per VBA sortiert werden sollen. Das Blatt bekommt er aber nicht zu sehen (soll er auch nicht).
Was ich letztlich bräuchte wäre sowas wie ein variables Selection.Sort.
Geht das irgendwie?
Vielen Dank.
Lars

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Benutzerdefiniertes Sortieren per VBA
Beni
Hallo Lars,
dieser Code sortiert von A2 bis letzte Zeile/Spalte ohne Titel.
Gruss Beni

Sub variables_sortieren()
lz = Cells(Rows.Count, 1).End(xlUp).Row
ls = Cells(1, 256).End(xlToLeft).Column
sp = InputBox("Sortierung")
Range(Cells(2, 1), Cells(lz, ls)).Sort Key1:=Cells(2, sp), Header:=xlNo
End Sub

AW: Benutzerdefiniertes Sortieren per VBA
26.10.2004 20:00:37
Lars
Hallo Beni,
vielen Dank für Deine Antwort.
Insgesamt erstellt das Programm ein "Sortier-Array":
sortArray(nmbrSrtSls, 2) as Integer
sortArray(i, 1): Spalten-Nummer, grundsätzlich beliebig
sortArray(i, 2): 1, 2 (xlAscending, xlDescending)
nmbrSrtSls: Anzahl der Spalten, nach denen sortiert werden soll (1 bis 3)
Ich hatte als ersten naiven Versuch folgendes gemacht:
If nmbrSrtSls = 1 Then
Range(Cells(2, 1), Cells(lstRw, lstClmn)).Sort Key1:=Cells(2, sortArray(1, 1)), Order1:=sortArray(1, 2), _
Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
ElseIf nmbrSrtSls = 2 Then
Range(Cells(2, 1), Cells(lstRw, lstClmn)).Sort Key1:=Cells(2, sortArray(1, 1)), Order1:=sortArray(1, 2), _
key2:=Cells(2, sortArray(2, 1)), order2:=sortArray(2, 2), _
Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
ElseIf nmbrSrtSls = 3 Then
Range(Cells(2, 1), Cells(lstRw, lstClmn)).Sort Key1:=Cells(2, sortArray(1, 1)), Order1:=sortArray(1, 2), _
key2:=Cells(2, sortArray(2, 1)), order2:=sortArray(2, 2), _
key3:=Cells(2, sortArray(3, 1)), order3:=sortArray(3, 2), _
Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End If
Der Code läuft auch, sortiert bloss nichts.
Etwas ratlos bin ich momentan schon...
Vielen Dank.
Gruß
Lars
Anzeige
Fehler GEFUNDEN Benutzerdefiniertes Sortieren
27.10.2004 09:28:57
Lars
Hallo Beni,
jetzt ist mir doch noch mein Fehler aufgefallen...es lag in der Test-Mappe an der Option Header:=xlYes.
Vielen Dank für die Hilfe.
Gruß
Lars

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige