gibt es eine Möglichkeit das Register der Tabellenblätter einer Arbeitsmappe
alphabetisch oder numerisch zu sortieren?
Viele Grüße
Holger
schau doch bitte erst einmal in den Beiträgen der vegangenen Tage nach!
Dort findest Du genau Hilfestellungen zu Deinem Problem.
MfG
Michael
___________________________
Michael Velten
eMail: Velten...@T-Online.de
Holger Filges <hfi...@filges.de> schrieb in im Newsbeitrag:
eevtLnmP$GA....@cppssbbsa02.microsoft.com...
Diese Prozedure in ein Code-Modul eintragen
und uber Menü Extra->Macro->Macros...
aufrufen.
Public Sub SortSheets()
Dim i As Integer
Dim tName As String
Dim ws As Worksheet
Const ctTempSheet = "SortSheet"
On Error GoTo ErrHandler
Application.ScreenUpdating = False
' Hilfsblatt erzeugen
Worksheets.Add before:=Sheets(1)
Worksheets(1).Name = ctTempSheet
' Blattnamen eintragen
i = 1
For Each ws In Worksheets
If ws.Name <> ctTempSheet Then
Cells(i, 1) = ws.Name
i = i + 1
End If
Next
' Einträge sortieren
Range("A1").CurrentRegion.Sort Key1:=Range("A1"), _
Order1:=xlAscending, _
Header:=xlNo, _
OrderCustom:=1, _
MatchCase:=False, _
Orientation:=xlTopToBottom
' Blätter sortieren
For i = Worksheets.Count - 1 To 1 Step -1
tName = Worksheets(ctTempSheet).Cells(i, 1)
Worksheets(tName).Move before:=Worksheets(2)
Next
' das Hilfsblatt löschen
Application.DisplayAlerts = False
Worksheets(ctTempSheet).Delete
Application.DisplayAlerts = True
Application.ScreenUpdating = True
Exit Sub
ErrHandler:
Resume Next
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
mfg
Konrad
Holger Filges schrieb:
>
> Hallo.
>
> gibt es eine Möglichkeit das Register der Tabellenblätter einer Arbeitsmappe
> alphabetisch oder numerisch zu sortieren?
>
> Viele Grüße
>
> Holger
Mit diesem Makro die sortiereri kein Problem mehr sein.
gruss Heinz
Sub Blattsort()
' Variablen dimensionieren
Dim blätter(100), blattzahl, i As Integer, aktname As String
blattzahl = Sheets.Count
' Erste Schleife liest alle Blattnamen ein
For i = 1 To blattzahl
blätter(i) = Sheets(i).Name
Next i
' Neues Tabellenblatt einfügen
Sheets.Add
aktname = ActiveSheet.Name
[a1].Select
' Zweite Schleife schreibt alle Blattnamen in die Tabelle
For i = 1 To blattzahl
ActiveCell.Value = blätter(i)
Selection.Offset(1, 0).Select
Next i
' Bereich auswählen und absteigend sortieren
Range([a1], Cells(i - 1, 1)).Select
Selection.Sort Key1:=Range("A1"), Order1:=xlDescending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:= _
xlTopToBottom
' Dritte Schleife sortiert alle Blattnamen nach der Liste ein
Dim counter As Variant
For Each counter In Selection
Sheets(counter.Value).Move Before:=Sheets(1)
Next counter
' Eingefügtes Tabellenblatt löschen
Application.DisplayAlerts = False
Sheets(aktname).Delete
End Sub
Sub BlätterSortieren()
Dim S As Integer; Done As Boolean
Do
Done = True
For S = 1 To Worksheets.Count - 1
If Worksheets(S).Name > Worksheets(S + 1).Name Then
Worksheets(S + 1).Move Before:=Worksheets(S)
Done = False
End If
Next S
Loop Until Done
End Sub
MfG Frank
__________________________________________________________
Frank Arendt-Theilen, MVP für Microsoft Excel
E-Mail: Thei...@t-online.de
Am Sat, 4 Dec 1999 16:13:53 +0100, schrieb "Holger Filges"
<hfi...@filges.de> in microsoft.public.de.excel zu
"Tabellenblattregister sortieren":
> Hallo.
>
> gibt es eine Möglichkeit das Register der Tabellenblätter einer Arbeitsmappe
> alphabetisch oder numerisch zu sortieren?
>
> Viele Grüße
>
> Holger
Hallo Holger,
versuchs mal damit!
Makro sortiert aufsteigend:
Sub TabellenblaetterSortieren()
Dim i As Integer, x As Integer 'Dim i%, x%
For i = 1 To Sheets.Count
For x = 1 To Sheets.Count - 1
If UCase$(Sheets(x).Name) > UCase$(Sheets(x + 1).Name) Then
Sheets(x).Move After:=Sheets(x + 1)
End If
Next x
Next i
End Sub
Makro sortiert absteigend:
Sub TabellenblaetterSortieren()
Dim i As Integer, x As Integer 'Dim i%, x%
For i = 1 To Sheets.Count
For x = 1 To Sheets.Count - 1
If UCase$(Sheets(x).Name) < UCase$(Sheets(x + 1).Name) Then
Sheets(x).Move After:=Sheets(x + 1)
End If
Next x
Next i
End Sub
Gruss Werner
_______________________________________
Werner Nagel
Am Gutenbrunnen 15
67150 Niederkirchen
Internet: http://www.Werner-Nagel.de
e-Mail: ma...@Werner-Nagel.de
_______________________________________