Live-Forum - Die aktuellen Beiträge
Datum
Titel
19.04.2024 12:23:24
19.04.2024 11:45:34
Anzeige
Archiv - Navigation
1860to1864
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

Sortierung von Spalten ohne Select

Sortierung von Spalten ohne Select
03.01.2022 09:05:25
Spalten
Ein frohes neues Jahr!
Seit Q4 21 arbeite ich an einem Excel-Tool zum Monitoring (m)eines 12-wöchigen Therapieprogramms für computerspielabhängige Patienten. Die Sitzungen finden einmal wöchentlich statt, wobei der Wochentag von Staffel zu Staffel abweichen kann (mal montags, mal mittwochs ...). Um die Mediennutzungsdaten prozessgemäß abbilden zu können, habe ich mit meinen bescheidenen Kenntnissen eine Sortierfunktion der Wochentage (Spalten M - S) via Steuerelement eingebaut. Alles funktioniert soweit, aber gefühlt recht langsam. Mein Fragen an die VBA-Profis:
- Kann man das Sortiermakro und somit auch die Anweisungen des Steuerelementes verschlanken? Momentan sind es 5 (für jeden Wochentag eines mit Sortier-Key) ...
- Kann man das Sortiermakro ohne Select bauen? Mich nervt, dass nach Makro Ablauf die Spalten M - S markiert bleiben ...
Hier die datenschutzkonforme Datei zur Veranschaulichung: https://www.herber.de/bbs/user/150104.xlsm
Bin wie immer für jede Hilfe dankbar.
Daniel Jäger

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

Betreff
Datum
Anwender
Anzeige
AW: Sortierung von Spalten ohne Select
03.01.2022 10:01:30
Spalten
Hi

Sub t()
Dim strWoche As String: strWoche = "Mo,Di,Mi,Do,Fr,Sa,So,"
Dim tempSplit As Variant
Application.ScreenUpdating = False
tempSplit = Split(strWoche, ",")
Call MeinSort(tempSplit(Range("D1") - 1) & "," & Replace(strWoche, tempSplit(Range("D1") - 1) & ",", ""))
End Sub

Sub MeinSort(strSort As String)
With ThisWorkbook.Worksheets("ZOE-Datenbank").Sort
.SortFields.Clear
.SortFields.Add Key:=Range("M2:S2"), SortOn:=xlSortOnValues, Order:=xlAscending, CustomOrder:=CStr(strSort), DataOption:=xlSortNormal
.SetRange Range("M2:S1000")
.Header = xlYes
.MatchCase = False
.Orientation = xlLeftToRight
.Apply
End With
End Sub
cu
Chris
Anzeige
AW: Sortierung von Spalten ohne Select
03.01.2022 13:26:07
Spalten
Hi Chris,
wie Du siehst, wächst das Projekt :) Habe Deine Variante eingebaut. Sie bringt noch nicht ganz das gewünschte Ergebnis. In meiner Rekorder-Version werden die Spalten nach gewähltem Wochentag aufgereiht (Mi in Spalte M, dann folgt Do bis Di am Ende in Spalte S steht usw.). Bei Deiner Version steht immer der gewählte Tag vorne, gefolgt von der regulären Wochentagesequenz. Um den Prozess aber genau abzubilden, müssen sich die Wochentage am gewählten Tag orientieren. Du nutzt dabei die Abfrage über die Value Änderung in D1 - interessant, ich dachte, dass diese Werte für ChangeEvents nicht nutzbar sind?
Liebe Grüße
Daniel Jäger
Anzeige
AW: Sortierung von Spalten ohne Select
03.01.2022 13:53:56
Spalten
Hi Daniel
Ja, ein tolles Projekt...
Mein Fehler, habe nicht gut aufgepasst. Hier eine neue Version:

Sub t()
Dim strWoche As String: strWoche = "Mo,Di,Mi,Do,Fr,Sa,So"
Dim varSplit As Variant, varWoche(6) As Variant, i As Integer
Application.ScreenUpdating = False
varSplit = Split(strWoche, ",")
For i = Range("D1") - 1 To Range("D1") + 5
varWoche(i - Range("D1") + 1) = varSplit(i Mod 7)
Next i
With ThisWorkbook.Worksheets("ZOE-Datenbank").Sort
.SortFields.Clear
.SortFields.Add Key:=Range("M2:S2"), SortOn:=xlSortOnValues, Order:=xlAscending, CustomOrder:=Join(varWoche, ","), DataOption:=xlSortNormal
.SetRange Range("M2:S1000")
.Header = xlYes
.MatchCase = False
.Orientation = xlLeftToRight
.Apply
End With
End Sub
Hier wird kein klassisches Worksheet_Change Ereignis benutzt. Das Makro ist über das Steuerelement zugewiesen. Same same but different ;)
cu
Chris
Anzeige
AW: Sortierung von Spalten ohne Select
03.01.2022 14:11:42
Spalten
Hi Chris,
wie immer dickes Danke! Jetzt funktioniert es, wie es sein soll.
Es wird nicht die letzte Frage zu diesem Projekt bleiben ;-)
Liebe Grüße
Daniel Jäger

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige