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

Schreibschutz prüfen funktioniert nicht

Schreibschutz prüfen funktioniert nicht
02.10.2019 12:19:58
Philipp
Hallo Forum-Experten!
Ich habe ein kleines Problem, bei dem ich nicht weiterkomme und hoffe, dass Ihr helfen könnt.
Ich habe eine Excel-Datei, die als Datenbank fungiert, und über mehrere User über eine andere Excel-Datei mit Daten "gefüttert" wird.
Um zu vermeiden, dass die Datei im schreibgeschützten Modus aufgerufen wird und beim (automatischen) Speichern einen Fehler verursacht, habe ich eine Schleife eingebaut, die beim Öffnen der Datei prüft ob sie schreibgeschützt ist und (falls ja) den Vorgang wiederholt.
Do Until Schreibschutz = "NEIN"
Workbooks.Open Filename:="PFAD etc."
If ActiveWorkbook.ReadOnly Then
ActiveWorkbook.Close
Else
Schreibschutz = "NEIN"
End If
Loop
Da die Datei nur kurz geöffnet, Daten ergänzt, die Datei gespeichert und wieder geschlossen wird, hat es bis dato auch recht problemlos funktioniert.
Aus irgendwelchen (mir unerklärlichen) Gründen "verschluckt" sich der Code in letzter Zeit allerdings und erkennt die Datei anscheinend nicht mehr als schreibgeschützt.
Gibt es noch andere Wege zu prüfen, ob eine Datei in Benutzung ist oder hat jemand eine Erklärung für das Phänomen?
Besten Dank für Eure Zeit und Hilfe!
Viele Grüße
Philipp

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Windows Schreibschutz
02.10.2019 12:50:14
Fennek
Hallo,
mit VBA kann man den Schreibschutz der Festplatte auslesen und setzen:

GetAttr ( path )    'Klammern müssen sein
The GETATTR function will return one or a combination of the following values:
VB Constant 	Value 	Explanation
vbNormal 	0 	Normal
vbReadOnly 	1 	Read-only
vbHidden 	2 	Hidden
vbSystem 	4 	System file
vbDirectory 	16 	Directory or folder
vbArchive 	32 	File has been changed since last backup
vbAlias 	64 	File name is an alias
SetAttr path, attributes
Attributes can be the following values:
VB Constant 	Value 	Explanation
vbNormal 	0 	Normal (default)
vbReadOnly 	1 	Read-only
vbHidden 	2 	Hidden
vbSystem 	4 	System file
vbArchive 	32 	File has been changed since last backup
vbAlias 	64 	File name is an alias (Macintosh only)
 _
https://www.mrexcel.com/forum/excel-questions/1034729-vba-code-run-cmd-code.html
Shell ("attrib d:\test.txt +s +h +r")
oder
Sub FileAttribute()
SetAttr "C:\test.txt", vbSystem + vbHidden + vbReadOnly
End Sub
mfg
Anzeige
AW: Windows Schreibschutz
02.10.2019 13:17:32
Philipp
Hallo Fennek,
danke für die Antwort, aber bei der GetAttr-Funktion kann ich nur auslesen, ob die Datei als schreibgeschützt gespeichert ist.
Ich habe mich vielleicht unklar ausgedrückt - ich will, dass ausgelesen wird, ob die Datei zur Zeit in Benutzung und damit als schreibgeschützt geöffnet ist.
Damit soll vermieden werden, dass zwei User gleichzeitig versuchen, Daten zu hinterlegen und zu speichern.
Viele Grüße
Philipp
AW: Schreibschutz prüfen funktioniert nicht
02.10.2019 15:51:55
Oberschlumpf
Hi Philipp,
grundsätzlich finde ich deine Idee mit Do/Loop gar nicht schlecht - wenn sie denn zu 100% funktionieren würde :-)
Meine Idee:
Was spricht denn gegen die excelinterne Dateifreigabe; d h, es können - gleichzeitig - mehrere Personen diese Datei öffnen?
Ciao
Thorsten
Anzeige
AW: Schreibschutz prüfen funktioniert nicht
02.10.2019 16:04:25
Philipp
Hallo Thorsten,
danke für den Hinweis - muss dazu die Datei über OneDrive in der Cloud gespeichert sein?
Oder geht dies auch auf "normalem" Pfad?
Viele Grüße,
Philipp
AW: Schreibschutz prüfen funktioniert nicht
02.10.2019 17:25:14
Oberschlumpf
Hi Philipp,
im Job nutzen wir gemeinsam (ich+Kollegen) eine Anwesenheitsdatei im firmeninternen Netzwerk.
Da funktioniert die Freigabe über Excel.
Ob das auch mit OneDrive geht, weiß ich nicht, da keine Erfahrung.
Aber du scheinst ja eher zu befürchten, dass es nur mit OneDrive gehen könnte :-)
Also, wie gesagt, in einem Netzwerk (nicht Internet) funktioniert das.
Wenn du nicht weißt, wie das mit der Freigabe in Excel eingestellt wird, nutze Google. Das wird sehr oft erklärt.
Ciao
Thorsten
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige