Schreibgeschütze Datei kopieren / öffnen
Hallo zusammen,
ich möchte in einem VBA-Makro regelmässig eine Datei von einem Ordner in einen anderen kopieren. Das funktioniert soweit auch.
[FileCopy Quelldatei1, ZielDatei1 ]
nun soll aber die Zieldatei schreibgeschützt sein (und bleiben), dann krieg ich ne Fehlermeldung. Kann ich da was machen?
Noch eine andere, ähnliche Frage:
Wenn ich in nem Makro eine (nicht schreibgeschützte) Datei öffne, und ein zweiter User öffnet die gleiche Datei, bekommt er diese ja schreibgeschützt, was oben angezeigt wird, aber er bekommt keine ausdrückliche Warnung. Kann ich beim Öffnen der Datei im Makro abfragen, ob diese schreibgeschützt ist und dann eine Meldung anzeigen, bzw das Makro anders weiterlaufen lassen?
Vielen Dank schon mal
und ein schönes Wochenende
M F G
Andreas
Antwort schreiben
Antwort 1 von Saarbauer vom 04.12.2021, 19:58 Options
Hallo,
es kommt drauf an was für einen Schreibschutz.
1. Wenn du die Datei mit rechter Maustaste anklickst und auf Eigenschaften gehst, kannst du dort den Schreibschutz rausnehmen (vermute du meinst diesen)
2. Wenn jemand anders die Datei auf hat, ist der Schreibschutz nach Schliessung durch den anderen weg.
3. Schreibschutz per Passwort ist grundsätzlich nur mit dem Passwort regulär zu öffnen. Alle anderen Methoden sind illigal.
Gruß
Helmut
Antwort 2 von andreas_3 vom 07.12.2021, 10:22 Options
Hallo Helmut,
vielen Dank für die Antwort,
ja, ich meinte zwar "diesen" Schreibschutz, aber mein Problem ist ein anderes:
Eine so schreibgeschütze Datei soll regelmässig durch ein Makro ausgetauscht (aktualisiert) werden, für die User soll der Schreibschutz auch erhalten bleiben, aber der Befehl
FileCopy Quelldatei1, ZielDatei1
kann eine schreibgeschütze Datei offensichtlich nicht überschreiben. Gibt's da vielleicht einen Zusatz oder Trick, dass es doch geht?
Das andere Problem ist, dass ebenfalls über Makro verschiedene User auf eine NICHT schreibgeschützte Datei zugreifen sollen und Änderungen machen können, aber falls zwei das gleichzeitig machen, kann der zweite seine Änderungen nicht speichern, weil er sie natürlich nur schreibgeschützt kriegt. Wenn jemand die Datei so öffnet, bekommt er ja einen entsprechenden Hinweis und kann es später wieder probieren, aber beim Öffnen über Makro kommt eben kein Hinweis (außer oben im Dateinamen) und dann ist die Arbeit evtl für die Katz....
Gruß
Andreas
Antwort 3 von Yossarian vom 07.12.2021, 11:49 Options
Antwort 4 von fedjo vom 07.12.2021, 12:31 Options
Hallo Andreas,
mit dem Makro kannst du eine Kopie der Arbeitsmappe erstellen, die auch immer wieder ersetzt und Tabelle1 schreibgeschützt wird.
Gruß
fedjo
Sub Backup()
' Sicherungskopie erstellen
ActiveWorkbook.Sheets("Tabelle1").Protect "Passwort" 'Tabelle u. Passwort ändern
Application.DisplayAlerts = False
Dim FName As String
Dim OldComment As String
OldComment = ActiveWorkbook.Comments
ActiveWorkbook.Comments = "Sicherungskopie von " & _
ActiveWorkbook.Name & _
", erstellt von der Backup-Prozedur."
'Name für die Sicherungskopie aus dem Namen der Originaldatei bilden
FName = Left(ActiveWorkbook.Name, _
InStr(ActiveWorkbook.Name, ".")) & _
"(backup).xls"
ActiveWorkbook.SaveCopyAs Filename:="C:\Dokumente und Einstellungen\Admin\Eigene Dateien\Backup\" & FName 'Pfad ändern
ActiveWorkbook.Comments = OldComment
ActiveWorkbook.Sheets("Allgemein").Unprotect "Passwort" 'ändern
End Sub
Antwort 5 von fedjo vom 07.12.2021, 12:35 Options
Die Tabelle muß natürlich auch hier geändert werden.
ActiveWorkbook.Sheets("Tabelle1").Unprotect "Passwort" 'ändern
End Sub