Liebe VBA-Cracks, ich komme mit einem Skript nicht weiter. Ich möchte in einer Datei alle Tabellenblätter löschen bis auf ein bestimmtes Blatt. Die Blätter werden jedoch nicht gelöscht und das Skript läuft nicht bis zum Schluss durch. Zur Fehlersuche habe ich einen alternativen Code verwendet und anstelle des Lösch-Befehls das Einfärben der Register getestet. Dies funktioniert einwandfrei und das Skript läuft bis zum Schluss durch. Was ist falsch? Danke für die Hilfe.
Option Explicit
Sub Extern_Publikation_FI()
'Variablendeklaration
Dim strPfad As String
Dim strPublikationsdatei As String
Dim mySheet As String
Dim ws As Worksheet
'Variablenwerte
strPfad = ThisWorkbook.Path & "\"
strPublikationsdatei = "FI_2023"
mySheet = "FTE_Extern Test_FI"
'---------
'Start
'---------
'Datei kopieren
ThisWorkbook.Sheets.Copy
'Neue Datei abspeichern als .xlsx-Datei
With ActiveWorkbook
.SaveAs Filename:=strPfad & strPublikationsdatei, FileFormat:=xlOpenXMLWorkbook
End With
'Tabellenblätter entfernen
Application.DisplayAlerts = False
For Each ws In ActiveWorkbook.Worksheets
If ws.Name > mySheet Then
'Löschen funktioniert nicht
ws.Delete
'Einfärben der Register funktioniert
'ws.Tab.ColorIndex = 3
End If
Next ws
Application.DisplayAlerts = True
'Neue Datei schliessen
With ActiveWorkbook
.Save
.Close
End With
'---------
'Ende
'---------
MsgBox "Publikationsdatei FI_2023 ist erstellt!" & vbNewLine & vbNewLine & "Dateiablage: " & vbNewLine & strPfad
Exit Sub
FehlerMarke:
MsgBox "Es ist ein Fehler aufgetreten. Das Makro wurde nicht ausgeführt."
End Sub