Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Schreibgschützt setzen/entfernen mit VBA

Forumthread: Schreibgschützt setzen/entfernen mit VBA

Schreibgschützt setzen/entfernen mit VBA
28.09.2006 22:15:43
MartinCH
Hallo Zusammen
Wieder mal ich.
Wir haben eine Datei die im Normalfall immer schreigeschützt geöffnet wird, nur wenn die Datei aktualisiert wird, muss sie ohne Schreibschutz geöffnet werden.
Habe es mit diesem Script versucht, es blieb aber beim Versuch (Fehlermeldung: Kann Eigenschaft nicht ändern)

Sub TestSchreibgeschütz_EIN_AUS()
ActiveWorkbook.ReadOnly = True
MsgBox "Schreibschutz aktiv!"
ActiveWorkbook.ReadOnly = False
MsgBox "Schreischutz deaktiviert"
End Sub

Ist es möglich die Eigenschaft zu ändern?
Wie muss der Script aufgebaut sein?
Oder kann ich die Datei per VBA schliessen und wieder öffnen als Readonly = false. Leider hatte mein Versuch dies zu machen fehlgeschlagen da das laufende Makro ebenfalls geschlossen wurde. Ist es möglich eine neue Datei zu öffnen ein Modul zu erstellen und dieses gleich lafen lassen? Natürlich alles mit VBA.
Danke für Hinweise oder Lösungen
Martin
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Schreibgschützt setzen/entfernen mit VBA
28.09.2006 23:06:52
fcs
Hallo Martin,
mit folgendem Code kannst du eine Datei ohne Schreibschutz öffnen, die standardmäßig mit Schreibschutz geöffnet wird.

Sub Makro1()
'Sendet Tastenkombination <Alt>+n an das Dialogfenster zum Öffnen einer
'standardmäßig schreibgeschützt zu öffnenden Datei, so dass Datei ohne Schreibschutz geöffnet wird.
Application.SendKeys ("%n")
Workbooks.Open FileName:="C:\Test\MAPPE1.xls"
End Sub

Folgendes Makro ändert den Schreibschutzstatus der aktiven Datei:

Sub SchreibschutzEINAUS()
With ActiveWorkbook
If .ReadOnly = True Then
ActiveWorkbook.ChangeFileAccess Mode:=xlReadWrite
Else
ActiveWorkbook.ChangeFileAccess Mode:=xlReadOnly
End If
End Sub

Gruß
Franz
Anzeige
AW: Schreibgschützt setzen/entfernen mit VBA
29.09.2006 07:18:45
MartinCH
Hallo Franz
Wow es geht tatsächlich. Musste nur noch ein wenig anpassen und es funktioniert bestens.

Sub SchreibschutzEINAUS()
With ActiveWorkbook
If .ReadOnly = True Then
'direkte Eingabe des Passworts ebenfalls möglich einfach Super!
ActiveWorkbook.ChangeFileAccess Mode:=xlReadWrite, WritePassword:="meinWort"
Else
ActiveWorkbook.ChangeFileAccess Mode:=xlReadOnly
End If
End With 'musste noch ergänzt werden
End Sub

Danke und Gruss
Martin
Anzeige
;
Anzeige

Infobox / Tutorial

Schreibschutz in Excel mit VBA verwalten


Schritt-für-Schritt-Anleitung

Um den Schreibschutz einer Excel-Datei zu setzen oder aufzuheben, kannst du den folgenden VBA-Code verwenden. Dieser Code wechselt den Schreibschutzstatus je nach aktueller Einstellung.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.

  3. Füge den folgenden Code in das Modul ein:

    Sub SchreibschutzEINAUS()
       With ActiveWorkbook
           If .ReadOnly = True Then
               ' Wechsel zu schreibbarem Modus
               ActiveWorkbook.ChangeFileAccess Mode:=xlReadWrite
           Else
               ' Wechsel zu schreibgeschütztem Modus
               ActiveWorkbook.ChangeFileAccess Mode:=xlReadOnly
           End If
       End With
    End Sub
  4. Schließe den VBA-Editor und kehre zu Excel zurück.

  5. Führe das Makro aus, indem du ALT + F8 drückst und das Makro SchreibschutzEINAUS auswählst.


Häufige Fehler und Lösungen

  • Fehlermeldung: „Kann Eigenschaft nicht ändern“
    Diese Fehlermeldung kann auftreten, wenn du versuchst, den Schreibschutz zu ändern, während die Datei schreibgeschützt geöffnet ist. Stelle sicher, dass du die Datei im richtigen Modus öffnest.

  • Makro schließt während des Ausführens
    Wenn dein Makro während der Ausführung geschlossen wird, solltest du überprüfen, ob du die Datei mit dem richtigen Modus öffnest. Verwende die ChangeFileAccess-Methode, um sicherzustellen, dass du die Datei im gewünschten Modus öffnen kannst.


Alternative Methoden

Eine weitere Möglichkeit, den Schreibschutz zu umgehen, ist die Verwendung von SendKeys, um die Datei ohne Schreibschutz zu öffnen. Hier ist ein Beispiel:

Sub Makro1()
    ' Sendet Tastenkombination <Alt>+n an das Dialogfenster zum Öffnen einer
    ' standardmäßig schreibgeschützt zu öffnenden Datei, sodass die Datei ohne Schreibschutz geöffnet wird.
    Application.SendKeys ("%n")
    Workbooks.Open FileName:="C:\Test\MAPPE1.xls"
End Sub

Diese Methode kann nützlich sein, wenn du regelmäßig eine Datei ohne den schreibgeschützten Modus öffnen musst.


Praktische Beispiele

Hier sind einige praktische Beispiele, die den Umgang mit dem Schreibschutz in Excel verdeutlichen:

  1. Schreibschutz aufheben mit Passwort
    Du kannst auch den Schreibschutz aufheben, indem du ein Passwort angibst. Hier ein Beispiel:

    Sub SchreibschutzEINAUS()
       With ActiveWorkbook
           If .ReadOnly = True Then
               ActiveWorkbook.ChangeFileAccess Mode:=xlReadWrite, WritePassword:="meinWort"
           Else
               ActiveWorkbook.ChangeFileAccess Mode:=xlReadOnly
           End If
       End With
    End Sub
  2. Datei im schreibgeschützten Modus öffnen
    Um eine Datei im schreibgeschützten Modus zu öffnen, kannst du den folgenden Code verwenden:

    Sub DateiSchreibgeschuetztOeffnen()
       Workbooks.Open FileName:="C:\Test\MAPPE2.xls", ReadOnly:=True
    End Sub

Tipps für Profis

  • Achte darauf, dass du die richtige Datei und den richtigen Pfad angibst, um Fehler zu vermeiden.
  • Verwende ChangeFileAccess in Kombination mit If-Bedingungen, um den Schreibschutz effizient zu steuern.
  • Teste deinen VBA-Code in einer Kopie der Datei, um unerwünschte Änderungen zu vermeiden.

FAQ: Häufige Fragen

1. Wie kann ich den Schreibschutz in Excel dauerhaft aufheben?
Um den Schreibschutz dauerhaft aufzuheben, musst du die Datei im xlReadWrite-Modus speichern. Verwende dafür den Code ActiveWorkbook.ChangeFileAccess Mode:=xlReadWrite.

2. Was mache ich, wenn ich die Datei nicht im schreibgeschützten Modus öffnen kann?
Stelle sicher, dass keine anderen Programme die Datei verwenden und dass die Datei nicht schreibgeschützt ist. Überprüfe auch die Berechtigungen des Ordners, in dem sich die Datei befindet.

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