2.7k Aufrufe
Gefragt in Tabellenkalkulation von andreas_3 Mitglied (109 Punkte)
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

5 Antworten

0 Punkte
Beantwortet von saarbauer Profi (15.6k Punkte)
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
0 Punkte
Beantwortet von andreas_3 Mitglied (109 Punkte)
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
0 Punkte
Beantwortet von
Bezüglich Makros und gleichzeitiges Arbeiten in (freigegebenen) Excel-Dateien schau mal hier:

www.supportnet.de/t/2241967

Yossarian
0 Punkte
Beantwortet von
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
0 Punkte
Beantwortet von
Die Tabelle muß natürlich auch hier geändert werden.

ActiveWorkbook.Sheets("Tabelle1").Unprotect "Passwort" 'ändern
End Sub
...