AW: Liste der Tabellennamen sortieren
22.04.2007 10:26:55
Oberschlumpf
Hi Fritz
Ändere deinen Code um wie folgt:
Sub Tabellen()
'Listet alle Tabellen der Arbeitsmappe in der Spalte A ab Zeile 2 auf
Dim InI As Integer, liZeile As Integer, liIndex As Integer, liIndex1 As Integer
Calc = Application.Calculation: Beschleuniger xlCalculationManual
For InI = 2 To Sheets.Count
Cells(InI, 1) = Sheets(InI).Name
Next InI
liZeile = Cells(Rows.Count, 1).End(xlUp).Row + 2
liIndex = liZeile
liIndex1 = liZeile
For InI = 2 To Cells(Rows.Count, 1).End(xlUp).Row
If IsNumeric(Left(Cells(InI, 1), 1)) = False Then
Cells(liIndex, 1) = Cells(InI, 1)
liIndex = liIndex + 1
Else
Cells(liIndex1, 2) = Cells(InI, 1)
liIndex1 = liIndex1 + 1
End If
Next
Range("A" & liZeile & ":A" & Cells(Rows.Count, 1).End(xlUp).Row).Sort _
Key1:=Range("A" & liZeile), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("B" & liZeile & ":B" & Cells(Rows.Count, 2).End(xlUp).Row).Sort _
Key1:=Range("B" & liZeile), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("A2:A" & liZeile - 2).Value = ""
Range("A" & liZeile & ":A" & Cells(Rows.Count, 1).End(xlUp).Row).Cut
Range("A2").Select
ActiveSheet.Paste
Range("B" & liZeile & ":B" & Cells(Rows.Count, 2).End(xlUp).Row).Cut
Range("A" & Cells(Rows.Count, 1).End(xlUp).Row + 1).Select
ActiveSheet.Paste
Range("A1").Select
End Sub
Erklärung:
Ab der Zeile
liZeile = Cells(Rows.Count, 1).End(xlUp).Row + 2
werden die Sheetnamen zuerst getrennt aufgelistet nach dem Kriterium erstes Zeichen = Buchstabe oder Zahl.
Diese Auflistung erfolgt in Spalte A, 2 Zeilen unterhalb des letzten, unsortierten Eintrages.
Dann werden die beiden getrennten Auflistungen jeweils für sich sortiert.
In den nächsten Schritten wird abschließend zuerst die unsortierte Auflistung gelöscht, und dann werden in Spalte A, ab Zeile2 zuerst die sortierten Sheetnamen beginnend mit Buchstaben und direkt darunter beginnend mit Zahlen aufgelistet.
Konnte ich helfen?
Ciao
Thorsten