Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1160to1164
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

tabellenblätter nach name sortieren

tabellenblätter nach name sortieren
Jonatan
Hallo,
habe folgenden Frage: Gibt es eine Standardsortierfunktion für die Anordnung der Tabellenlätter?
Ich habe etwa 50 Tabellenblätter, die alle als Namen eine Stringfolge aus 2 Buchstaben haben.
Dazu habe ich mir selbst eine kleine Prozedur geschrieben, die zwar funkioniniert, aber ziemlich lahm ist.
'Tabellenblätter nach aufsteigender Nummerierung sortieren
For i = 1 To Worksheets.Count
If Len(Worksheets(i).Name) = 2 Then
For a = 1 To Worksheets.Count
If Len(Worksheets(a).Name) = 2 Then
If CStr(Worksheets(i).Name) 
Hat sich da nicht schon mal jemand Gedanken drüber gemacht?
Vielleicht könnt ihr mir ja weiterhelfen.
Vielen Dank
Gruß Jonatan

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

Betreff
Benutzer
Anzeige
AW: tabellenblätter nach name sortieren
16.06.2010 16:48:12
ing.grohn
Hallo Jonatan
probier mal
Sub SortiereTabellenMappe()
Dim Max As Integer
Dim Blatt As Integer
Dim Blatt2 As Integer
Application.ScreenUpdating = False
Max = ActiveWorkbook.Worksheets.Count
For Blatt = 1 To Max
For Blatt2 = Ibl To Max
If UCase(Worksheets(Blatt2).Name) 

Mit freundlichen Grüßen
Albrecht
AW: tabellenblätter nach name sortieren
16.06.2010 16:55:53
Tino
Hallo,
kannst mal diesen Code testen.
kommt als Code in Modul1
Option Explicit 
Sub SortTabelle() 
Dim meAr(), i As Integer 
 
With ThisWorkbook 
    Redim meAr(.Sheets.Count - 1) 
     
    For i = 1 To ThisWorkbook.Sheets.Count 
        meAr(i - 1) = .Sheets(i).Name 
    Next i 
     
    QuickSort meAr, Lbound(meAr), Ubound(meAr) 
     
    Application.ScreenUpdating = False 
    For i = Ubound(meAr) To Lbound(meAr) Step -1 
        .Sheets(meAr(i)).Move After:=.Sheets(i + 1) 
    Next i 
    Application.ScreenUpdating = True 
 
End With 
End Sub 
kommt als Code in Modul2
Option Explicit 
 
Sub QuickSort(ByRef sArray As Variant, ByVal MinElem As Long, MaxElem As Long) 
Dim Mitte As Long 
Dim vDummy As Variant 
Dim i As Long, j As Long 
 
    If MinElem > MaxElem Then 
 
        Exit Sub 
    End If 
 
    Mitte = (MinElem + MaxElem) \ 2 
 
    i = MinElem 
    j = MaxElem 
    Do 
 
        Do While sArray(i) < sArray(Mitte) 
            i = i + 1 
        Loop 
 
        Do While sArray(j) > sArray(Mitte) 
            j = j - 1 
        Loop 
  
        If i <= j Then 
 
            vDummy = sArray(j) 
            sArray(j) = sArray(i) 
            sArray(i) = vDummy 
 
            i = i + 1 
            j = j - 1 
        End If 
  
    Loop Until i > j 
    QuickSort sArray, MinElem, j 
    QuickSort sArray, i, MaxElem 
End Sub 
Gruß Tino
Anzeige
AW: tabellenblätter nach name sortieren
22.06.2010 10:06:30
Jonatan
Hi Tino,
vielen Dank für deine Antwort.
Läuft sehr schön und deutlich schneller als mein Makro.
(Sorry für die späte Rückmeldung)
Gruß Jonatan

305 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige