Speichern unter in Excel verhindern
Schritt-für-Schritt-Anleitung
Um das "Speichern unter" in Excel zu verhindern, kannst Du den folgenden VBA-Code verwenden. Dieser Code wird im ThisWorkbook
-Modul eingefügt und sorgt dafür, dass User die Datei nicht unter einem anderen Namen speichern können.
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If Application.UserName <> "User1" Then
If SaveAsUI Then
MsgBox ("Die Datei darf nicht unter einem anderen Namen gespeichert werden"), vbOKOnly
Cancel = True
Application.SendKeys ("{ESC}"), True
End If
End If
End Sub
Dieser Code überprüft, ob der User "User1" ist. Wenn nicht, wird der Speichervorgang abgebrochen, wenn der Dialog "Speichern unter" aufgerufen wird.
Um zusätzlich zu verhindern, dass die Datei schreibgeschützt geöffnet wird, kannst Du den Code anpassen, um auch den Schreibschutz zu berücksichtigen:
Private Sub Workbook_Open()
If ActiveWorkbook.ReadOnly Then
MsgBox ("Die Datei ist schreibgeschützt. Änderungen können nicht gespeichert werden.")
End If
End Sub
Häufige Fehler und Lösungen
Fehler 1: Sub oder Function nicht definiert
Wenn Du beim Ausführen des Codes die Fehlermeldung "Sub oder Function nicht definiert" erhältst, liegt das häufig daran, dass Du den ControlEnableDisable
-Befehl nicht definiert hast. Stelle sicher, dass Du die entsprechende Funktion oder das Add-In in Deinem Projekt aktiviert hast.
Fehler 2: Makros sind deaktiviert
Wenn Deine Makros nicht funktionieren, überprüfe, ob die Makros in Excel aktiviert sind. Dies kann unter den Excel-Optionen im Sicherheitscenter eingestellt werden.
Alternative Methoden
Eine alternative Methode, um das Speichern unter zu verhindern, besteht darin, die Menüleiste so zu modifizieren, dass die Optionen "Speichern" und "Speichern unter" deaktiviert sind. Hier ist ein Beispielcode, um dies zu erreichen:
Private Sub Workbook_Activate()
Call ControlEnableDisable(3, False) ' Speichern
Call ControlEnableDisable(748, False) ' Speichern unter
End Sub
Private Sub Workbook_Deactivate()
Call ControlEnableDisable(3, True)
Call ControlEnableDisable(748, True)
End Sub
Diese Methode kann effektiv sein, um das "Speichern unter" in Excel zu sperren.
Praktische Beispiele
Ein praktisches Beispiel für den Einsatz der oben genannten Methoden wäre, wenn Du eine Excel-Datei hast, die sensible Daten enthält und nicht verändert oder unter einem anderen Namen gespeichert werden soll. Mit den VBA-Codes kannst Du sicherstellen, dass nur autorisierte Benutzer die Datei in der vorgesehenen Form nutzen können.
Ein weiteres Beispiel ist die Verwendung des Workbook_Open
-Ereignisses, um sicherzustellen, dass beim Öffnen der Datei alle wichtigen Blätter versteckt sind und nur durch das Aktivieren von Makros sichtbar werden.
Tipps für Profis
- Makrosicherheit: Stelle sicher, dass Du die Makrosicherheit auf ein angemessenes Niveau eingestellt hast, um sicherzustellen, dass nur vertrauenswürdige Makros ausgeführt werden.
- Backup erstellen: Bevor Du Änderungen vornimmst, erstelle immer ein Backup Deiner Dateien, um Datenverlust zu vermeiden.
- Dokumentation: Dokumentiere Deine VBA-Codes und deren Funktionalitäten, damit Du oder andere Benutzer in der Zukunft die Absicht der Codes verstehen können.
FAQ: Häufige Fragen
1. Wie kann ich verhindern, dass eine Excel-Datei unter einem neuen Namen gespeichert wird?
Du kannst dies verhindern, indem Du den Workbook_BeforeSave
-Ereignis nutzt, um den Speichervorgang zu überprüfen und gegebenenfalls abzubrechen.
2. Was passiert, wenn Makros deaktiviert sind?
Wenn Makros deaktiviert sind, funktionieren die oben genannten VBA-Codes nicht, und die Benutzer können die Datei wie gewohnt speichern oder unter einem neuen Namen speichern.