Speichern unter bestehenden Namen verhindern in Excel
Schritt-für-Schritt-Anleitung
Um das Speichern unter einem bestehenden Namen zu verhindern, kannst du den folgenden VBA-Code in das Modul „DieseArbeitsmappe“ einfügen:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Const VorlagenName = "C:\Ordner\Vorlage.xls"
Dim s As String
Dim ok As Boolean
Cancel = True
If SaveAsUI Or UCase(ActiveWorkbook.FullName) = UCase(VorlagenName) Then
Do
s = Application.GetSaveAsFilename(InitialFileName:="", fileFilter:="Excel-Arbeitsmappe, *.xls")
If s = False Then Exit Sub 'Abbruch gedrückt
ok = True
If UCase(s) = UCase(VorlagenName) Then
ok = False
MsgBox "Dies ist die Vorlage! Bitte andere Datei wählen!"
End If
Loop Until ok = True
End If
ActiveWorkbook.SaveAs Filename:=s
End Sub
Dieser Code überprüft, ob die Datei unter dem Namen der Vorlage gespeichert werden soll. Wenn ja, wird der Speicherprozess abgebrochen und eine Nachricht angezeigt.
Häufige Fehler und Lösungen
-
Laufzeitfehler 13: Wenn du einen Laufzeitfehler bekommst, kann das an falschen Datentypen liegen. Stelle sicher, dass du die richtigen Variablen verwendest und die Konstanten korrekt definiert sind.
-
Excel kann nicht speichern: Überprüfe, ob die Datei, die du speichern möchtest, schreibgeschützt ist oder ob du nicht über die notwendigen Berechtigungen verfügst.
-
Excel speichern unter funktioniert nicht: Stelle sicher, dass du den Code korrekt in das richtige Modul eingefügt hast und die Datei unter einem neuen Namen gespeichert wird.
Alternative Methoden
Wenn du die Möglichkeit suchst, die Datei nur unter einem neuen Namen zu speichern, könntest du auch die Zelle A1 verwenden, um den neuen Dateinamen festzulegen. Hier ist ein Beispiel:
Sub speichern_unter_Wert_A1()
ThisWorkbook.SaveAs Range("A1").Value & ".xls"
End Sub
Du kannst die Zelle A1 so formatieren, dass sie das aktuelle Datum und die Uhrzeit enthält, was bedeutet, dass die Datei immer mit einem einzigartigen Namen gespeichert wird.
Praktische Beispiele
Ein einfaches Beispiel für einen Code, der das Speichern unter einem bestehenden Namen verhindert:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If SaveAsUI = False And ActiveWorkbook.Name = "Vorlage.xls" Then
MsgBox "Bitte unter anderem Namen abspeichern!"
Cancel = True
End If
End Sub
Mit diesem Code wird ein Hinweis ausgegeben, wenn versucht wird, die Vorlage unter ihrem ursprünglichen Namen zu speichern.
Tipps für Profis
-
Schreibschutz aktivieren: Setze die Datei in den Eigenschaften auf „Schreibgeschützt“, um zu verhindern, dass sie versehentlich überschrieben wird.
-
Benutzerrechte anpassen: Wenn du Windows NT oder höher verwendest, kannst du die Benutzerrechte so einstellen, dass nur bestimmte Benutzer die Datei ändern können.
-
Verwende Application.OnKey: Mit Application.OnKey "^s", ""
kannst du das Speichern mit Strg-S verhindern, um sicherzustellen, dass die Benutzer den Code nicht umgehen.
FAQ: Häufige Fragen
1. Frage
Wie kann ich das Speichern unter einem bestehenden Namen in Excel komplett verhindern?
Antwort: Du kannst VBA verwenden, um eine Abfrage einzufügen, die das Speichern unter dem bestehenden Namen abbricht.
2. Frage
Was kann ich tun, wenn der VBA-Code nicht funktioniert?
Antwort: Überprüfe, ob der Code im richtigen Modul eingefügt wurde und ob es keine Syntaxfehler gibt. Stelle auch sicher, dass die Datei nicht schreibgeschützt ist.