Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1840to1844
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
Tabelle sortieren mehrere Kriterien
13.08.2021 00:11:55
Andreas
Hallo,
wie kann ich beim Verlassen eines Userforms eine Tabelle nach folgenden Kriterien sortieren?
Name Blatt Tabelle1
In Zeile 4 befindet sich die Überschrift, die Datenzeilen beginnen ab Zeile 5. Folgender Aufbau Spalte 4: Datum; Spalte 5 eine Tageszeit als Name (Morgens, Mittags, Abends); Spalte 3 Zahlen zwischen 1-10.
Er soll nun per VBA zuerst alle zusammenhängenden Datenzeilen nach dem Datum in Spalte 4 sortieren (01.01.2021, 02.01.2021, usw) danach nach der Spalte 5 nach Tageszeit. Erst Morgens, dann Mittags, dann abends - und zuletzt nach Spalte 3 die Zahlenwerte von 1-10 aufsteigend.
Ist das irgendwie realisierbar?

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabelle sortieren mehrere Kriterien
13.08.2021 08:56:47
Werner
Hallo,
sortier nach deinen Wünschen "von Hand" und zeichne das mit dem Makrorekorder auf.
Gruß Werner
AW: Tabelle sortieren mehrere Kriterien
13.08.2021 21:57:49
Andreas
Dies kam dabei raus.
Sieht mir aber irgendwie sehr durcheinander aus. Kann man das auch so gestalten, dass er das ganze macht, wenn man die Tabelle gar nicht sieht - diese also ausgeblendet ist?

Sub Makro1()
' Makro1 Makro
ActiveWorkbook.Worksheets("Tagesnachweise").ListObjects("Tabelle2").Sort. _
SortFields.Clear
ActiveWorkbook.Worksheets("Tagesnachweise").ListObjects("Tabelle2").Sort. _
SortFields.Add2 Key:=Range("Tabelle2[Datum]"), SortOn:=xlSortOnValues, _
Order:=xlAscending, DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("Tagesnachweise").ListObjects("Tabelle2").Sort. _
SortFields.Add2 Key:=Range("Tabelle2[Schicht]"), SortOn:=xlSortOnValues, _
Order:=xlAscending, CustomOrder:= _
"Frühdienst,Spätdienst,Nachtdienst,Zusatzdienst 1,Zusatzdienst 2", DataOption _
:=xlSortNormal
ActiveWorkbook.Worksheets("Tagesnachweise").ListObjects("Tabelle2").Sort. _
SortFields.Add2 Key:=Range("Tabelle2[Nr]"), SortOn:=xlSortOnValues, Order _
:=xlAscending, DataOption:=xlSortTextAsNumbers
With ActiveWorkbook.Worksheets("Tagesnachweise").ListObjects("Tabelle2").Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub

Anzeige
AW: Tabelle sortieren mehrere Kriterien
13.08.2021 23:19:51
Werner
Hallo,
eingekürzt.

Sub Makro1()
With Worksheets("Tagesnachweise").ListObjects("Tabelle2").Sort
.SortFields.Clear
.SortFields.Add Key:=Range("Tabelle2[Datum]"), SortOn:=xlSortOnValues, _
Order:=xlAscending, DataOption:=xlSortNormal
.SortFields.Add Key:=Range("Tabelle2[Schicht]"), SortOn:=xlSortOnValues, _
Order:=xlAscending, CustomOrder:="Frühdienst,Spätdienst,Nachtdienst," _
& "Zusatzdienst 1,Zusatzdienst 2", DataOption:=xlSortNormal
.SortFields.Add Key:=Range("Tabelle2[Nr]"), SortOn:=xlSortOnValues, Order _
:=xlAscending, DataOption:=xlSortTextAsNumbers
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.Apply
End With
End Sub
Und wer sagt, dass die Tabelle eingeblendet sein muss?
Gruß Werner
Anzeige
AW: Tabelle sortieren mehrere Kriterien
13.08.2021 23:23:36
Yal
Hallo Andreas,
würde es so besser aussehen?

Sub Makro1()
Const CustOrd = "Frühdienst,Spätdienst,Nachtdienst,Zusatzdienst 1,Zusatzdienst 2"
With ActiveWorkbook.Worksheets("Tagesnachweise").ListObjects("Tabelle2").Sort
.SortFields.Clear
.SortFields.Add2 Key:=Range("Tabelle2[Datum]"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
.SortFields.Add2 Key:=Range("Tabelle2[Schicht]"), _
SortOn:=xlSortOnValues, Order:=xlAscending, _
CustomOrder:=CustOrd, DataOption:=xlSortNormal
.SortFields.Add2 Key:=Range("Tabelle2[Nr]"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortTextAsNumbers
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
Es ist genau denselben Code, nur von Wiederholung bereinigt und sauber indentiert.
CustomOrder-String ist als Konstant ausserhalb, anstatt in der Mitte versteckt.
Das Coding kann natürlich auch auf eine versteckten Blatt wirken.
VG
Yal
Anzeige
AW: Tabelle sortieren mehrere Kriterien
13.08.2021 23:37:21
Andreas
Super ihr beiden - vielen Dank, ja, so sieht das schon ordentlicher aus :)
Gerne u. Danke für die Rückmeldung. o.w.T.
14.08.2021 08:45:02
Werner
AW: Tabelle sortieren mehrere Kriterien
14.08.2021 12:15:38
Andreas
Super ihr beiden - vielen Dank, ja, so sieht das schon ordentlicher aus :)

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige