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

ReadOnly-Eigenschaft beim direkten Öffnen v Datei

Forumthread: ReadOnly-Eigenschaft beim direkten Öffnen v Datei

ReadOnly-Eigenschaft beim direkten Öffnen v Datei
17.08.2006 13:57:00
stefanseevetal
Hallo!
Ich verzweifel heute noch an. Ich versuche schon den ganzen Tag, dass sich mein Workbook, wenn ich es direkt öffne, automatisch schreibgeschützt öffnet. Matthias hat mir gestern netterweise den Tipp gegeben, es so zu versuchen (vielen Dank dafür!):

Private Sub Workbook_Open()
Me.ChangeFileAccess xlReadOnly
End Sub

Dies führt bei meinen Excel-Dateien aber zu sehr merkwürdigen Fehlern und schweren Ausnahmefehlern, wieso auch immer?!
Deshalb meine Frage: Wenn ich ein Workbook per VBA öffne, kann ich den Schreibschutz ja so festlegen:
Workbooks.Open Filename:=ThisWorkbook.Path & "\test.xls", _
ReadOnly:=True
Gibt es nicht so eine ähnliche Möglichkeit auch den anderen Fall. So etwa:

Private Sub Workbook_Open()
ThisWorkbook ReadOnly:=True
End Sub

(Das Beispiel funzt leider nicht, hab ich schon gestestet)
Also, vielleicht kennt ja jemand noch eine andere Möglichkeit, außer die von Matthias? Ihr würdet mir sehr helfen!
Danke und Gruß,
Stefan
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: ReadOnly-Eigenschaft beim direkten Öffnen v Da
17.08.2006 14:01:04
Matthias
Hallo Stefan,
bevor du dich verrennst:
Es würde schon die Dateieigenschaft "Schreibgeschützt" reichen. Falls doch was gespeichert werden muss, muss man den Haken vorher eben wieder entfernen.
Gruß Matthias
AW: ReadOnly-Eigenschaft beim direkten Öffnen v Da
17.08.2006 14:22:30
stefanseevetal
Hallo Matthias,
leider ist es so, dass ich per Makro auf die schreibgeschützten Dateien zugreifen muss. Und ich weiß nicht, wie ich das sinnvoll machen kann.
Schütze ich die Arbeitsmappe so mit einem Passwort, kommt immer die Abfrage, wo ich entweder das Passwort eingeben kann oder 'schreibgeschützt' anklicken kann. Da weiß ich leider nicht, wie ich dass automatisieren kann. Außerdem kommt dann bei Mehrfachzugriff auf die Datei immer die lästige Abfrage, ob schreibgeschützt geöffnet werden soll.
Deshalb habe ich mir halt gedacht, ich schreibe es so, dass bei jedem Öffnen der Datei automatisch der Schreibschutz aktiviert wird (z.B. wie Du mir geschrieben hast in Workbook_Open() mit ChangeFileAccess) und ich ihn dann per Makro einfach deaktiviere. Das hat auch mal funktioniert, aber hin und wieder schmiert da mein Excel bei ab (schwerer Ausnahemfehler), auch nicht so toll.
Deshalb habe ich nun gedacht, vielleicht kann man es auch noch etwas anders machen als mit ChangeFileAccess.
Oder gibt es den eine Möglichkeit den Schreibschutz in den Dateieigenschaften per Makro wieder rauszunehmen und danach wieder reinzusetzen?
Gruß,
Stefan
Anzeige
AW: ReadOnly-Eigenschaft beim direkten Öffnen v Da
17.08.2006 14:30:47
Matthias
Hallo Stefan,
mal ein anderer Ansatz:
wenn bestimmte Leute immer nur lesend darauf zugreifen sollen, kannst du beim Speichern entweder eine Kopie der Mappe erstellen (.SaveCopyAs) oder (falls nur Daten angesehen werden, ohne Zellveränderung) die Datei im HTML-Format abspeichern. Das können die Usder dann mit einem Browser anschauen.
Gruß Matthias
Anzeige
AW: ReadOnly-Eigenschaft beim direkten Öffnen v Datei
17.08.2006 14:08:37
u_
Hallo,
also dass hier funzt bei mir:

Private Sub Workbook_Open()
Sheets("Start").Select
Select Case LCase(Environ("username"))
Case "maier", "mueller", "schulze", "schmidt"
'dürfen schreiben
Case Else
ThisWorkbook.ChangeFileAccess xlReadOnly
End Select
End Sub
Gruß
Lesen gefährdet die Dummheit
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

Infobox / Tutorial

Excel-Datei nur lesend öffnen: Tipps und Tricks


Schritt-für-Schritt-Anleitung

Um eine Excel-Datei nur lesend zu öffnen, kannst du folgende Schritte ausführen:

  1. Öffne Excel und aktiviere das VBA-Fenster:

    • Drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.
  2. Füge den Code in das Workbook ein:

    • Wähle im Projekt-Explorer das gewünschte Workbook aus.
    • Füge im Code-Fenster den folgenden Code ein:
      Private Sub Workbook_Open()
      ThisWorkbook.ChangeFileAccess xlReadOnly
      End Sub
    • Dieser Code sorgt dafür, dass die Datei beim Öffnen automatisch in den Schreibschutzmodus versetzt wird.
  3. Speichere die Datei:

    • Speichere die Datei als Excel-Makro-aktivierte Arbeitsmappe (.xlsm).
  4. Teste den Code:

    • Schließe die Datei und öffne sie erneut, um sicherzustellen, dass sie nur lesend geöffnet wird.

Häufige Fehler und Lösungen

  • Fehler: Excel stürzt ab oder es treten schwerwiegende Ausnahmen auf.

    • Lösung: Überprüfe deinen Code auf Syntaxfehler. Möglicherweise gibt es Komplikationen mit anderen Makros. In solchen Fällen kann es hilfreich sein, den Code schrittweise zu testen.
  • Fehler: Die Datei öffnet sich nicht im Read-Only-Modus.

    • Lösung: Stelle sicher, dass du den richtigen Code in der Workbook_Open-Subroutine verwendet hast. Verwende ThisWorkbook.ChangeFileAccess xlReadOnly anstelle von Me.ChangeFileAccess xlReadOnly.

Alternative Methoden

Wenn du eine Excel-Datei nur lesend öffnen möchtest, gibt es verschiedene Ansätze:

  1. Speichere die Datei als HTML:

    • Wenn die Datei nur angezeigt werden soll, ohne dass Änderungen vorgenommen werden, kannst du sie im HTML-Format speichern. So können Nutzer die Datei im Browser öffnen.
    • Beispiel-Code zum Speichern:
      ThisWorkbook.SaveAs Filename:="C:\DeinPfad\deineDatei.html", FileFormat:=xlHTML
  2. Verwende die Workbooks.Open Methode:

    • Du kannst die Datei direkt im Read-Only-Modus öffnen, indem du folgenden Befehl in dein Makro einfügst:
      Workbooks.Open Filename:="C:\DeinPfad\deineDatei.xls", ReadOnly:=True

Praktische Beispiele

Hier sind einige nützliche Beispiele, die dir helfen können:

  1. Öffnen einer .xls-Datei nur lesend:

    Sub OpenReadOnlyFile()
       Workbooks.Open "C:\DeinPfad\deineDatei.xls", ReadOnly:=True
    End Sub
  2. Zugriff basierend auf Benutzername:

    Private Sub Workbook_Open()
       Select Case LCase(Environ("username"))
           Case "deinBenutzername"
               ' Schreibzugriff erlaubt
           Case Else
               ThisWorkbook.ChangeFileAccess xlReadOnly
       End Select
    End Sub

Tipps für Profis

  • Verwende Excel.Application.DisplayAlerts = False:

    • Wenn du das Popup zur Bestätigung des schreibgeschützten Zugriffs vermeiden möchtest, kannst du diese Zeile verwenden, um die Warnungen temporär auszublenden.
  • Excel-Datei mit Passwort schützen:

    • Wenn du eine Excel-Datei mit Passwort speichern möchtest, kannst du dies mit folgendem Code tun:
      ThisWorkbook.SaveAs Filename:="C:\DeinPfad\deineDatei.xls", Password:="deinPasswort"

FAQ: Häufige Fragen

1. Wie kann ich die Read-Only-Eigenschaft aufheben? Du kannst die Read-Only-Eigenschaft mit folgendem Befehl aufheben:

ThisWorkbook.ChangeFileAccess xlReadWrite

2. Was passiert, wenn ich versuche, eine schreibgeschützte Datei zu speichern? Wenn du eine schreibgeschützte Datei speicherst, wirst du in der Regel gefragt, ob du die Datei unter einem anderen Namen speichern möchtest. Achte darauf, die Datei nicht versehentlich zu überschreiben.

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