Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: "Speichern unter" verhindern

"Speichern unter" verhindern
05.01.2007 15:17:49
Ben
Hallo Forum
Meine Datei darf von den Usern nicht unter einem neuen Namen gespeichert werden, d.h. "speichern unter" ist mit folgendem Code, den ich im Forum gefunden habe, unterbunden:
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
Else
End If
Nun möchte ich auch verhindern, dass die Datei unter einem neuen Namen gespeichert wird, wenn sie schreibgeschützt geöffnet wird.
Hat jemand eine Idee, wie man das anstellt? Im Archiv hab ich dazu nichts gefunden.
Danke für jeden Hinweis.
Gruss
Ben
Anzeige

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: "Speichern unter" verhindern
05.01.2007 15:28:27
ronny
hallo,
ich hatte mal etwas ähnliches im sinn.
habe mir eine andere methode ausgedacht, dies zu verhindern.
unter workbook_open fragen, ob die datei noch so heißt, wie du sie erstellt hast.
wenn ja, ok. wenn nein lasse einfach ein paar blätter löschen oder alle inhalte.
nach dem motto: diese datei zerstört sich in wenigen sekunden selbst.
gruß ronny
Anzeige
AW: "Speichern unter" verhindern
05.01.2007 15:30:29
Rudi
Hallo,
alles sinnlos!
Makros verhindern und aus is.
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe
AW: "Speichern unter" verhindern
05.01.2007 15:33:14
ronny
dann lässt du die datei eben wieder schließen, wenn makros deaktiviert sind.
bedarf natürlich einiger vorarbeit. wegen der ganzen versteckerei usw.
AW: "Speichern unter" verhindern
05.01.2007 15:46:19
Nepumuk
Hallo ronny,
wer soll die Datei schließen? Dein nicht aktiviertes Makro?
Gruß
Nepumuk
Anzeige
AW: "Speichern unter" verhindern
05.01.2007 15:51:56
ronny
hallo nepumuk,
ist doch sowieso nur ne spielerei. weiß ich selber.
kann damit höchstens den vorläufigen zugriff auf, beim schließen und speichern, versteckte blätter verhindern.
aber für den normalanwender, der in der regel nicht mal weiß, dass es eine vba-ebene gibt ist das doch auch völlig ausreichend.
gruß ronny
Anzeige
AW: "Speichern unter" verhindern
05.01.2007 15:49:00
Daniel
Hallo
im Prinzip könnte man ja beim Speichern die Wichtigen Blätter verstecken und dann beim Öffnen per Makro sichtbar machen.
Wenn dann der User die Makros unterbindet, sitzt er erstmal vor einer leeren Datei.
Wenn er dann was machen will, muß er zumindes wissen, wie man im VBA-Editor die Blätter wieder einblendet und das dürfte, je nach Branche für den Grossteil der User schon eine schwere Hürde sein.
Gruß, Daniel
Anzeige
AW: "Speichern unter" verhindern
05.01.2007 15:57:17
Nepumuk
Hallo Daniel,
dann öffne ich die Datei mit aktivierten Makros, geh in den Entwurfsmodus und speichere. Beim nächsten öffnen habe ich vollen Zugriff ohne ein Makro aktivieren zu müssen.
Gruß
Nepumuk
AW: "Speichern unter" verhindern
05.01.2007 16:23:35
Daniel
Hallo
das wusste ich auch noch nicht, daß es so einfach ist, die Makros auszuschalten, Danke für den Hinweis.
Ich denke, es muß jedem klar sein, daß ein VBA nur vor Leuten schützt, die gar keine Ahnung von Makros haben
Die Frage ist halt, solls nur ein Schutz vor Fehlbedienung sein oder muß es auch gegen Kriminelle und Subversive Elemente sicher sein, aber damit ist VBA sicherlich überfordert.
Gruß, Daniel
Anzeige
AW: "Speichern unter" verhindern
05.01.2007 15:42:19
Daniel
Hallo
mit "activeworkbook.readonly" kannt du abfragen, ob die Datei schreibgeschützt geöffnet wurde (gibt TRUE oder FALSE zurück)
vielleicht kannst du damit was anfangen.
allerdings, wenn die Datei schreibgeschützt geöffnet wurde, wird man, wenn man versucht sie normal zu speichern, automatisch auf den Speichern-Unter-Dialog verwiesen und im Before_Save_Ereignis ist der Wert SaveAsUI auf TRUE gesetzt.
Damit müsste dein Makro auch in diesem Fall greifen.
Das ganze geht natürlich nur, wenn der Schreibschutz von Excel gesetzt wurde und nicht nachträglich im Explorer.
Gruß, Daniel
Anzeige
AW: "Speichern unter" verhindern
05.01.2007 15:45:05
ronny
mal was hilfreiches von mir.
du kannst die optionen des speicherns bzw. speichern unter in den menüleisten so unterbinden.
Speichern und speichern unter deakt.

Private Sub Workbook_Activate()
Call ControlEnableDisable(3, False)
Call ControlEnableDisable(748, False)
Call ControlEnableDisable(295, False)
Call ControlEnableDisable(297, False)
Call ControlEnableDisable(3181, False)
Call ControlEnableDisable(3183, False)
Application.OnKey "^{+}", ""
End Sub


Private Sub Workbook_Deactivate()
Call ControlEnableDisable(3, True)
Call ControlEnableDisable(748, True)
Call ControlEnableDisable(295, True)
Call ControlEnableDisable(297, True)
Call ControlEnableDisable(3181, True)
Call ControlEnableDisable(3183, True)
Application.OnKey "^{+}"
End Sub

gruß ronny
Anzeige
AW: "Speichern unter" verhindern
05.01.2007 15:54:41
Daniel
Hallo
bei mir (Excel 2002) gibt den Befehl "ControlEnableDisable" nicht.
ist das was selbstgeschiebenens oder irgend ein AddIn, daß man aktivieren muss?
Gruß, Daniel
AW: "Speichern unter" verhindern
07.01.2007 11:43:06
Ben
Hi Ronny
Habe Deinen Code in einer Testdatei ausprobiert. Erhalte folgende Fehlermeldung:
Sub oder Function nicht definiert
Gruss
Ben
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

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.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige