Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Speichern durch VBA verhindern

Speichern durch VBA verhindern
26.08.2005 15:01:32
Oliver
Hallo Excel-Freunde,
bei uns im Firmennetzwerk müssen einige User in meine Excel-Tabellen
schauen. Die Dateien können dann von diesen Usern geändert werden, ich
möchte aber unterbinden, das diese die geänderten Tabellen auch abspeichern.
Wie müsste das Makro dazu aussehen ?
Es soll dann eine Infobox kommen mit dem Text:
"Sie sind nicht berechtigt, diese Datei abzuspeichern".
Gruß
Oliver
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Speichern durch VBA verhindern
26.08.2005 15:06:18
Peter
Servus,
da du ja selber noch speichern musst, mit PW Lösung.
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim strpw As String
strpw = Application.InputBox("Sie dürfen nicht Speichern !!!", "Speichern abgebrochen")
If strpw = "" Or strpw <> "123" Then
Cancel = True
Exit Sub
End If
End Sub

MfG Peter
Anzeige
AW: Speichern durch VBA verhindern
26.08.2005 15:10:04
Andi
Hi,
oder Du machst ne Abfrage nach dem jeweiligen user:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If Application.UserName = "Oliver" Then Exit Sub
MsgBox "Darfst Du nicht!"
Cancel = True
End Sub

Schönen Gruß,
Andi
Anzeige
Application.username ist übel, weil...
ransi
HAllo
das jeder User ändern kann.
versuchs darum besser mit environ("Username")
Option Explicit

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If Environ("UserName") <> "Oliver" Then
MsgBox "speichern is nich..."
Cancel = True
End If
End Sub

ransi
Anzeige
und wieder...
26.08.2005 15:31:32
Andi
... was gelernt, Merci.
Schönes Wochenende,
Andi
;
Anzeige
Anzeige

Infobox / Tutorial

Speichern durch VBA verhindern


Schritt-für-Schritt-Anleitung

Um das Speichern einer Excel-Datei durch VBA zu verhindern, kannst du das folgende Makro verwenden. Dieses Beispiel zeigt, wie du eine Abfrage integrierst, die das Speichern nur für bestimmte Benutzer erlaubt.

  1. Öffne deine Excel-Datei.
  2. Drücke ALT + F11, um den VBA-Editor zu öffnen.
  3. Klicke im Projekt-Explorer auf „Diese Arbeitsmappe“.
  4. Füge den folgenden Code ein:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    If Application.UserName <> "DeinBenutzername" Then
        MsgBox "Sie sind nicht berechtigt, diese Datei abzuspeichern."
        Cancel = True
    End If
End Sub
  1. Ersetze "DeinBenutzername" mit dem tatsächlichen Benutzernamen, der speichern darf.
  2. Schließe den VBA-Editor und speichere die Arbeitsmappe als Excel-Workbook mit Makros (*.xlsm).

Häufige Fehler und Lösungen

  • Fehler: Das Makro funktioniert nicht.

    • Lösung: Stelle sicher, dass das Makro korrekt in „Diese Arbeitsmappe“ eingefügt wurde und dass die Datei als .xlsm gespeichert wurde.
  • Fehler: Der Benutzer kann dennoch speichern.

    • Lösung: Überprüfe den Benutzernamen im Code. Achte darauf, dass der Benutzername exakt übereinstimmt.

Alternative Methoden

Eine alternative Methode ist die Verwendung einer Passwortabfrage. Hier ist ein Beispiel, wie du mit einem Passwort das Speichern verhindern kannst:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    Dim strpw As String
    strpw = Application.InputBox("Sie dürfen nicht speichern! Bitte Passwort eingeben:", "Speichern abgebrochen")
    If strpw = "" Or strpw <> "123" Then
        MsgBox "Speichern abgebrochen."
        Cancel = True
    End If
End Sub

In diesem Beispiel wird das Speichern nur mit dem richtigen Passwort (hier „123“) erlaubt.


Praktische Beispiele

Hier sind einige Szenarien, in denen das Speichern durch VBA verhindert wird:

  1. Speichern für bestimmte Benutzer sperren: Das oben gezeigte Beispiel schützt die Datei vor unberechtigten Benutzern.

  2. Speichern nach Benutzername: Wenn sich nur bestimmte Benutzer in der Organisation anmelden dürfen, kann der folgende Code verwendet werden:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    If Environ("UserName") <> "Oliver" Then
        MsgBox "Speichern ist nicht erlaubt."
        Cancel = True
    End If
End Sub

Tipps für Profis

  • Verwende Application.UserName: Dies ist eine einfache Möglichkeit, um Benutzernamen zu überprüfen, aber sei dir bewusst, dass Benutzer ihre Namen ändern können.

  • Nutze Passwortabfragen: Wenn die Sicherheit höher ist, ziehe die Verwendung von Passwortabfragen in Betracht, um das Speichern zu verhindern.

  • Regelmäßige Sicherungen: Stelle sicher, dass du regelmäßig Sicherungskopien deiner Excel-Datei machst, um Datenverlust durch unabsichtliches Speichern zu vermeiden.


FAQ: Häufige Fragen

1. Wie kann ich das Speichern für alle Benutzer verhindern?
Du kannst den Code so anpassen, dass jeder Benutzer eine Nachricht erhält, wenn er versucht zu speichern, unabhängig von ihrem Benutzernamen.

2. Kann ich das Makro auch in Excel 365 verwenden?
Ja, der Code funktioniert in Excel 365 sowie in älteren Versionen, solange du die Datei als .xlsm speicherst.

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