"Move"-Problem: Then .Sheets(x).Move .Sheets(i)
Peter
Nachfolgender Code wird aus einer anderen Arbeitsmappe angestossen, während die Arbeitsmappe, in welcher die Tabellenblätter sortiert werden sollen, ausgeblendet sind.
Es läuft alles schön durch bis
If x > i Then .Sheets(x).Move .Sheets(i)
Auf dieser Zeile erhalte ich den Laufzeitfehler '1004': Die Move-Methode des Worksheet-Objektes konnte nicht ausgeführt werden (manchmal läuft aber auch alles durch; ich habe nicht herausgefunden, was dann anders ist).
Ich habe mir schon überlegt, ob es damit zu tun hat, dass die Arbeitsmappe (nicht nur ein Sheet), in welcher die Tabellen sortiert werden sollen ausgeblendet ist. Doch dann würde es wohl immer nicht funktionieren.
Wer kann mir helfen?
Gruss, Peter
Sub Tabellenblaetter_sortieren()
Dim i As Long, x As Long, AnzahlRegister As Long, Zaehler As Long, WkbThis As Excel.Workbook
Dim WshCockpit As Worksheet, WshISIN As Worksheet, WshIndex As Worksheet
Set WkbThis = ThisWorkbook
Set WshCockpit = WkbThis.Worksheets("Cockpit")
Set WshISIN = WkbThis.Worksheets("Stammdaten")
Application.ScreenUpdating = False
With WkbThis
.Activate
AnzahlRegister = .Sheets.Count
For i = 1 To AnzahlRegister - 1
x = i
For Zaehler = i + 1 To AnzahlRegister
If UCase$(.Sheets(Zaehler).Name) i Then .Sheets(x).Move .Sheets(i)
Next i
WshCockpit.Move before:=.Sheets(1)
WshISIN.Move after:=WshCockpit ''Funktioniert auch, wenn Sheet "Stammdaten" ausgeblendet ist
End With
Application.ScreenUpdating = True
End Sub