Benutzung auf eigene Gefahr ! |
Beschreibung |
Das Makro sortiert alle Blätter nach ihrem Namen in aufsteigender Reihenfolge. |
VBA-Quelltext |
Public Sub BlätterSortieren(Optional DiagrammeTrennen As Boolean = True, Optional Auswahl As Boolean = False) Dim Liste As Object, Nr As Integer, AlleBlätter As Object If ActiveWorkbook.ProtectStructure Then MsgBox "Bearbeitung geschützter Arbeitsmappen nicht möglich", vbOKOnly + vbCritical, "Fehler" Exit Sub End If Application.ScreenUpdating = False If Auswahl Then Set AlleBlätter = ActiveWindow.SelectedSheets Else Set AlleBlätter = ActiveWorkbook.Sheets Set Liste = Workbooks.Add(xlWorksheet).ActiveSheet Liste.[B1].Activate ' Liste mit Blatnamen und Blattypen erstellen For Nr = 1 To AlleBlätter.Count Select Case TypeName(AlleBlätter(Nr)) Case "Worksheet": Cells(Nr, 2) = IIf(AlleBlätter(Nr).Type = xlWorksheet, 1, 4) Case "Chart": Cells(Nr, 2) = IIf(DiagrammeTrennen, 2, 1) Case "Module": Cells(Nr, 2) = 3 Case "DialogSheet": Cells(Nr, 2) = 5 Case Else: Cells(Nr, 2) = 6 End Select Cells(Nr, 1) = AlleBlätter(Nr).Name Cells(Nr, 3).Value = AlleBlätter(Nr).Visible AlleBlätter(Nr).Visible = True Next Nr ' Blattnamen sortieren Liste.UsedRange.Sort Key1:=Liste.[B1], Key2:=Liste.[A1], Header:=xlNo ' Blattreihenfolge sortieren For Nr = Liste.UsedRange.Rows.Count - 1 To 1 Step -1 With AlleBlätter(Liste.Cells(Nr, 1).Value) .Move before:=AlleBlätter(1) .Visible = Liste.Cells(Nr, 3).Value End With Next Nr Liste.Parent.Close False End Sub |
Argumente der Funktion/Prozedur |
|
Anwendungsgebiete, Fehler und Warnungen |
In alten Excel-Versionen (95) dürfen Argumente nicht gleichzeitig mit dem Schlüsselwort |