Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.04.2024 20:05:21
28.04.2024 18:33:31
28.04.2024 18:25:12
28.04.2024 14:18:05
Anzeige
Archiv - Navigation
1824to1828
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

Sheetsortierung ohne 1. Buchstaben

Sheetsortierung ohne 1. Buchstaben
04.04.2021 02:24:18
Max
Hallo liebe Forum-Mietglieder,
ich möchte Sheets sortieren ohne Einfluss des ersten Zeichens.
Die Sortierung anhand Buchstaben und Zahlen klappt und ist entsprechend simpel mit größer/kleiner-Vergleich umgesetzt:
https://www.herber.de/bbs/user/145296.xlsm
Sub SortSheet()
Dim arr()
n = Worksheets.Count
ReDim arr(n)
'Array mit Sheetnamen der aktuellen Reihenfolge erstellen
For k = 4 To n
arr(k) = (Worksheets(k).Name)
Next k
For i = 4 To n
For j = 4 To n
If arr(j) > arr(i) Then
h = arr(i)
arr(i) = arr(j)
arr(j) = h
End If
Next j
Next i
For g = 4 To n
'hier wird einfach jedes Sheet nach hinten verschoben entsprechend der geordneten  _
Reihenfolge des Arrays
Worksheets(CStr(arr(g))).Move after:=Worksheets(n)
Next g
End Sub
Allerdings möchte ich, dass alle Sheets mit gleicher zweiter Nummer (V277-XXXX-...) hintereinander aufgeführt werden, wozu wiederum das erste Zeichen des Sheetnamens in die Sortierentscheidung nicht eingehen darf.
Was muss ich am Code ändern bzw. wie bekomme ich die entsprechende Abhängigkeit mit rein?
Vielen Dank im Voraus euch und schöne Ostern!
Max

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Sheetsortierung ohne 1. Buchstaben
04.04.2021 03:22:08
CitizenX
Hallo,
das beste was mir zZ eingefallen ist:
Sub SortSheetohne1Ch()
Dim arrsort: Set arrsort = CreateObject("System.Collections.Arraylist")
Dim nname
n = Worksheets.Count
'Array mit Sheetnamen der aktuellen Reihenfolge erstellen
For k = 4 To n
arrsort.Add Mid(Worksheets(k).Name, 2, Len(Worksheets(k).Name) - 1) & Chr(165) & Left( _
Worksheets(k).Name, 1)
Next k
arrsort.Sort
For g = 1 To arrsort.Count - 1
nname = Split(arrsort(g), Chr(165))(1) & Split(arrsort(g), Chr(165))(0)
Worksheets(nname).Move after:=Worksheets(n)
Next g
End Sub

VG
Anzeige
Vielen Dank!
06.04.2021 02:07:58
Max
Hi CitizenX,
musste etwas rumprobieren und konnte es sehr gut bei mir einbinden.
Vielen Dank. Ich wünsche dir eine angenehme Woche :)
Viele Grüße
Max
=INDEX(SORTIEREN(TEIL({17;35;21};{1.2};9);2);;1)
04.04.2021 17:02:54
lupo1
Dankeschön
06.04.2021 02:11:04
Max
Hallo Lupo1,
auch dir vielen Dank für die Antwort.
Ich war mir allerdings nicht sicher, wie ich die Formel zu Sortierung von Sheets einbinde und werde demnächst nochmal etwas googlen.
Viele Grüße und eine angenehme Woche! :)
Max
Anzeige
Geht nicht ...
06.04.2021 08:48:43
lupo1
... da Sheets sich nicht per Formel sortieren lassen.
Für mich (und möglicherweise andere) war aber das Problem, übersetzt auf Tabellendaten, interessant.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige