Hallo Tobi,
Du brauchst KEINEN Code mehr außer diesem (noch mal ein klein wenig überarbeitet):
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim s
If Sheets(1).Name <> "Stückliste_anlegen" Then Exit Sub
' Vorlagendatei: erstes Blatt löschen
Do
'Dateiname abfragen (nicht Vorlagendatei!)
s = Application.GetSaveAsFilename(InitialFileName:="Kunde", fileFilter:="Excel-Arbeitsmappe, *.xls")
If s = ThisWorkbook.FullName Then
MsgBox "Dies ist die Vorlagendatei!" & Chr(10) & _
"Diese dürfen Sie nicht überschreiben!" & Chr(10) & Chr(10) & _
"Bitte wählen Sie eine andere Datei.", vbCritical
End If
Loop Until (s <> ThisWorkbook.FullName) Or s = False
Cancel = True
If s = False Then
MsgBox "Abbruch! Datei wurde nicht gespeichert."
Else
'Blatt löschen
Application.DisplayAlerts = False
Sheets("Stückliste_anlegen").Delete
Application.DisplayAlerts = True
'Mappe speichern
Application.EnableEvents = False
ThisWorkbook.SaveAs Filename:=s
Application.EnableEvents = True
End If
End Sub
Das Speichern geht ganz normal über den Speichern-Knopf oder in Menü Datei-Speichern.
Der ogige Code gehört in "DieseArbeitsmappe" (wichtig!)
Wenn Du die Vorlage speichern willst (als Administrator sozusagen), brauchst Du eine kleine Sub in einem normalen Modul:
Sub Vorlage_Speichern()
Application.EnableEvents = False
ThisWorkbook.Save
Application.EnableEvents = False
End Sub
Weil das "normale" Speichern abgefangen wird und dabei dann das erste Blatt gelöscht wird...
Gruß Matthias