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

Forumthread: Datei mit Schreibschutz öffnen und speichern

Datei mit Schreibschutz öffnen und speichern
18.06.2014 14:40:36
Sinayli57
Hallo,
habe eine Datei, die per Makro in eine zweite Datei (Datenbank) Einträge macht.
Die Datenbank-Datei habe ich neuerdings mit einem Schreibschutz versehen.
Hintergrund ist, dass wenn einer die Datenbank geöffnet hatte, wurde nicht in die Datenbank geschrieben.
Habe etwas im Netz gefunden (ReadOnly:=True, WriteResPassword:="abc", IgnoreReadOnlyRecommended:=True), wie man eine Datei mit schreibschutz zwar öffnet, doch kommt dann die Fehlermeldung:
Die Datei existiert bereits an dem Speicherort. Soll sie ersetzt werden?
Ich möchte, dass das Makro die Datei öffnet, die Einträge setzt und dann wieder so speichert, dass wieder der schreibschutz für die Datei gesetzt ist.
Hier der Code:
Sub Datenbankeintrag()
Dim StartZeileQ As Long, EndZeileQ As Long, AnzZeilenZ As Long, StartSpalteQ As Long, _
EndSpalteQ As Long
Dim AktSpalteQ As Long
Dim wsQuelle As Worksheet
Dim wsZiel As Worksheet
Workbooks.Open Filename:="V:\VI\SSC_Europa\Allgemein\Preiskalkulationstool\ _
Kalkulationsdatenbank.xlsx", ReadOnly:=True, WriteResPassword:="abc", IgnoreReadOnlyRecommended:=True
Set wsQuelle = ThisWorkbook.Worksheets("Elo")
Set wsZiel = Workbooks("Kalkulationsdatenbank.xlsx").Worksheets("Datenbank")
StartZeileQ = 100
EndZeileQ = 145
StartSpalteQ = 2
EndSpalteQ = 28
With wsZiel
AnzZeilenZ = .Cells(.Rows.Count, 2).End(xlUp).Row + 1
End With
wsZiel.Unprotect Password:="abc"
For AktSpalteQ = StartSpalteQ To EndSpalteQ
If wsQuelle.Cells(StartZeileQ, AktSpalteQ)  "" Then
'wenn ungleich "" leer erste Zeile der akt Spalte, dann kopieren, transformieren
With wsQuelle
.Range(.Cells(StartZeileQ, AktSpalteQ), .Cells(EndZeileQ, AktSpalteQ)).Copy
wsZiel.Cells(AnzZeilenZ, 2).PasteSpecial Paste:=xlPasteValues, Operation:= _
xlNone, SkipBlanks:= _
False, Transpose:=True
AnzZeilenZ = AnzZeilenZ + 1
End With
End If
Next AktSpalteQ
wsZiel.Protect Password:="abc"
ActiveWorkbook.Save
ActiveWindow.Close
End Sub

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Datei mit Schreibschutz öffnen und speichern
18.06.2014 15:39:36
Daniel
Hi
du darfst die Datei nicht schreibgeschütz öffen (also kein ReadOnly:=True).
wenn du sie schreibgeschützt öffnest, dann kannst und darfst du sie nicht unter dem selben Namen speichern und damit überschreiben (das ist ja der Sinn des Schreibschutzes).
Da du ja das Schreibschutzpasswort kennst und auch angibst, kannst du die Datei auch ohne Schreibschutz öffnen (außer, sie wird gerade von jemand anderem bearbeitet).
zum Speichern müsste dann ein einfaches ActiveWorkbook.Save ausreichen, um sie an gleicher Stelle mit den selben Einstellungen (wie dem Schreibschutz) zu speichern.
Gruß Daniel

Anzeige
AW: Datei mit Schreibschutz öffnen und speichern
18.06.2014 15:45:32
Sinayli57
Danke,
das war's.

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Datei mit Schreibschutz öffnen und speichern


Schritt-für-Schritt-Anleitung

Um eine Excel-Datei, die mit einem Schreibschutz versehen ist, zu öffnen und zu speichern, kannst du folgende Schritte befolgen:

  1. Öffne die Excel-Datei ohne Schreibschutz: Stelle sicher, dass du die Datei nicht mit ReadOnly:=True öffnest. Verwende stattdessen den folgenden VBA-Code:

    Workbooks.Open Filename:="Pfad\zur\deiner\Datei.xlsx", WriteResPassword:="abc"
  2. Führe die gewünschten Änderungen durch: Nachdem die Datei geöffnet ist, kannst du deine Änderungen vornehmen.

  3. Speichere die Datei: Um die Änderungen zu speichern, genügt ein einfacher Befehl:

    ActiveWorkbook.Save
  4. Schütze die Datei wieder: Wenn du die Datei wieder schließen möchtest, kannst du den Schreibschutz mit folgendem Befehl aktivieren:

    wsZiel.Protect Password:="abc"
  5. Schließe die Datei: Verwende den Befehl:

    ActiveWindow.Close

Häufige Fehler und Lösungen

  • Fehlermeldung beim Speichern: Wenn du die Datei mit ReadOnly:=True öffnest, kannst du sie nicht unter dem gleichen Namen speichern. Stelle sicher, dass du die Datei ohne diesen Parameter öffnest.

  • Zugriffsfehler: Wenn die Datei bereits von einem anderen Benutzer geöffnet ist, kannst du keine Änderungen vornehmen. Stelle sicher, dass die Datei nicht von jemand anderem bearbeitet wird.


Alternative Methoden

Falls du Schwierigkeiten hast, die Datei mit VBA zu öffnen, kannst du auch manuell vorgehen:

  1. Öffne die Datei normal (ohne VBA).
  2. Nehme die gewünschten Änderungen vor.
  3. Speichere die Datei und schütze sie erneut, indem du in den Dateioptionen den Schreibschutz aktivierst.

Praktische Beispiele

Hier ist ein einfaches Beispiel, wie du den Schreibschutz in Excel umsetzen kannst:

Sub BeispielSchreibschutz()
    Dim wb As Workbook
    Set wb = Workbooks.Open("Pfad\zur\deiner\Datei.xlsx", WriteResPassword:="abc")

    ' Änderungen vornehmen
    ' ...

    wb.Protect Password:="abc" ' Setze den Schreibschutz
    wb.Save
    wb.Close
End Sub

In diesem Beispiel wird die Datei geöffnet, Änderungen können vorgenommen werden und die Datei wird anschließend mit Schreibschutz gespeichert.


Tipps für Profis

  • VBA-Fehlerbehandlung: Füge eine Fehlerbehandlung in deinen VBA-Code ein, um sicherzustellen, dass du klare Fehlermeldungen erhältst, wenn etwas schiefgeht.

  • Nutzung von IgnoreReadOnlyRecommended: Mit diesem Parameter kannst du die Aufforderung zum schreibgeschützten Öffnen einer Arbeitsmappe umgehen. Der Code könnte so aussehen:

    Workbooks.Open Filename:="Pfad\zur\deiner\Datei.xlsx", WriteResPassword:="abc", IgnoreReadOnlyRecommended:=True

FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass ich die Datei mit Schreibschutz öffne?
Öffne die Datei ohne den Parameter ReadOnly:=True, um sicherzustellen, dass du Änderungen vornehmen kannst.

2. Was passiert, wenn die Datei bereits geöffnet ist?
Wenn die Datei von einem anderen Benutzer geöffnet ist, kannst du keine Änderungen vornehmen. Du musst warten, bis die Datei geschlossen wird.

3. Kann ich eine schreibgeschützte Datei bearbeiten?
Ja, solange du die Datei ohne den Schreibschutz öffnest und das richtige Passwort eingibst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige