Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1940to1944
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Schreibschutzattribut einer geöffneten Datei löschen

Schreibschutzattribut einer geöffneten Datei löschen
04.08.2023 15:22:02
reiner
Hallo Leute,

Eine mit Dateiattribut"Schreibschutz EIN" versehene Datei wird geöffnet, bearbeitet und soll anschließend mit dem GLEICHEN Dateinamen erneut gespeichert werden. Hierzu muss jedoch zunächst das Schreibschutzattribut entfernt werden.
Diese Lösung hat mir damals „Nepumuk“ zugesandt.

If .ReadOnly Then Call .ChangeFileAccess(Mode:=xlReadWrite)


Ja, ich weiß, dieses ist ein EXCEL-Forum, dennoch hoffe ich darauf, dass mir jemand aus diesem Forum einen Lösungsvorschlag unterbreitet um eine mit Dateiattribut"Schreibschutz EIN" verse-hene WORD-Datei ebenso mit dem GLEICHEN Dateinamen erneut zu speichern.

Wie müsste dieser Code umgewandelt werden, damit er unter WORD 2007 funktioniert?
If .ReadOnly Then Call .ChangeFileAccess(Mode:=xlReadWrite)


mfG
reiner

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Schreibschutzattribut einer geöffneten Datei löschen
04.08.2023 15:57:33
Oberschlumpf
Hi reiner ,

n paar Fragen hab ich.

- wenn es sich um eine Word-Datei handelt, wieso fragst du dann nicht in einem Word-Fach-Forum? Davon gibt es ja auch einige.
(ich bin nur neugierig, zumal ich vermute, dass Word-Fachleute sich besser auskennen als Excel-Fachleute)

- du zeigst uns nur "Fetzen" eines Codes
Wieso zeigst du uns nicht den ganzen Code, bei dem es um If .ReadOnly Then...usw geht?
Das könnte es für uns leichter machen, dir zu helfen.

- keine Frage, aber eine Vermutung:
Muss der Dateischreibschutz nicht - vor - dem Öffnen der Datei entfernt werden? (und bei Bedarf - nach - dem Schließen mit/ohne Speichern den Dateischreibschutz wieder setzen)

Ciao
Thorsten
Anzeige
Schreibschutzattribut einer geöffneten Datei löschen
04.08.2023 17:27:53
reiner
hallo Thorsten,

es ist gut möglich, dass sich Word-Fachleute besser auskennen als Excel-Fachleute bei der von mir gestellten Frage. Es war ein Versuch meinerseits diese Frage im Excel-Forum zu veröffentlichen, da ich bislang noch nie nach einem WORD-Forum gesucht habe, weil ich es auch bisher nicht benötigte.
Meine Originalanfrage zum Thema Speichern unter gleichem Dateinamen stammt vom 2023-06-10 12:58:25. Wie schon beschriebn erhielt ich damals die Lösung von Nepumuk.

Zur Vorgehensweise: Ich öffne eine schreibgeschützte Excel-Datei und bearbeite diese. Wenn die letzte Dateispeicherung gestern oder davor war, wird diese Datei mit dem aktuellen Tagesdatum gespeichert.
Wurde diese Datei aber bereits heute Vormittag bearbeitet und schreibgeschützt gespeichert und soll heute Nachmittag erneut bearbeitet und schreibgeschützt gespeichert werden, dann öffne ich diese und während des Speichervorgangs wird der Schreibschutz mit
If .ReadOnly Then Call .ChangeFileAccess(Mode:=xlReadWrite)

deaktiviert, sodass die Datei mit dem gleichen Dateinamen schreibgeschützt gespeichert wird. Das funktioniert wunderbar.
Nun will ich diese Speicherroutine auch für ein WORD-Dokument einsetzen. Einige Änderungen habe ich schon vorgenommen. Es hakt lediglich an If .ReadOnly Then...usw.
Dieser Code funktioniert offensichtlich nur unter EXCEL, nicht unter WORD. (Mode:=xlReadWrite)ermutlich muss ich (Mode:=xlReadWrite) durch (Mode:=wdReadWrite) ersetzen, das wäre das kleinste Problem. Aber ChangeFileAccess wird unter WORD nicht erkannt, da liegt der Hintergrund meiner Frage.

reiner
Anzeige
AW: Schreibschutzattribut einer geöffneten Datei löschen
04.08.2023 17:50:42
Oberschlumpf
Hi reiner,

ich hab den Beitrag von dir im Archiv gefunden.
Gleichzeitig hab ich herausgefunden, dass es ChangeFileAccess in Word - nicht! - gibt.

Weiterhelfen könnte dir dieser Link:
http://www.vbaexpress.com/forum/showthread.php?61305-Make-Document-as-Readonly-upon-opening

Wenn du kein Englisch kannst, dann google genau nach diesem Link - Google schlägt oft einen Ersatzlink a la "Dies Seite übersetzen" vor.
Wenn es keinen Ersatzlink gibt, dann musst du .... Englisch lernen - oder einen Übersetzer benutzen ;-)

Ich kann tiefergehend nicht weiterhelfen, weil ich eben auch eher Excel- als Word-Fachmann bin.

Ciao
Thorsten
Anzeige
Schreibschutzattribut einer geöffneten Datei löschen
06.08.2023 18:51:48
Ulf
Wie schreibet ihr so schön:
Der Vollständigkeit halber


Public Function toggleReadOnly(ByVal ChangeToReadOnly As Boolean) As Boolean
On Local Error GoTo toggleReadOnlyERR
Dim strDok As String
Dim bReadOnly As Boolean
Dim bChanged As Boolean
strDok = ThisDocument.FullName
If ChangeToReadOnly Then
' SetAttr strDok, vbReadOnly
' bChanged = (GetAttr(strDok) And vbReadOnly) = vbReadOnly
If ThisDocument.ProtectionType > wdAllowOnlyReading Then
ThisDocument.Protect Password:="", NoReset:=False, Type:=wdAllowOnlyReading, UseIRM:=False, EnforceStyleLock:=False
bChanged = ThisDocument.ProtectionType = wdAllowOnlyReading
Else
bChanged = True
End If
Else
' SetAttr strDok, vbNormal
' bChanged = (GetAttr(strDok) And vbNormal) = vbNormal
If ThisDocument.ProtectionType > wdNoProtection Then
ThisDocument.Unprotect ' Password:="", NoReset:=False, Type:=wdNoProtection, UseIRM:=False, EnforceStyleLock:=False
bChanged = ThisDocument.ProtectionType = wdNoProtection
Else
bChanged = True
End If
End If
toggleReadOnlyOUT:
toggleReadOnly = bChanged
Exit Function
toggleReadOnlyERR:
bChanged = False
Resume toggleReadOnlyOUT
End Function
Anzeige
Schreibschutzattribut einer geöffneten Datei löschen
04.08.2023 17:59:13
reiner
hallo Thorsten

danke für den Tipp, es zeigt mir, dass ich nicht der einzige bin der dieses Problem hat.

da muss ich wohl noch etwas googeln

reiner
Schreibschutzattribut einer geöffneten Datei löschen
05.08.2023 00:17:12
Ulf
o.w.


Public Sub toogle()
'
'Dim bOK As Boolean
'bOK = toggleReadOnly((GetAttr(strDok) And vbReadOnly) = vbReadOnly)
If toggleReadOnly(True) Then
'''ToTo
End If
End Sub

Public Function toggleReadOnly(ByVal ChangeToReadOnly As Boolean) As Boolean
On Local Error GoTo toggleReadOnlyERR
Dim strDok As String
Dim bReadOnly As Boolean
Dim bChanged As Boolean
strDok = ThisDocument.FullName
If ChangeToReadOnly Then
SetAttr strDok, vbNormal
bChanged = (GetAttr(strDok) And vbNormal) = vbNormal
Else
SetAttr strDok, vbReadOnly
bChanged = (GetAttr(strDok) And vbReadOnly) = vbReadOnly
End If
toggleReadOnlyOUT:
toggleReadOnly = bChanged
Exit Function
toggleReadOnlyERR:
bChanged = False
Resume toggleReadOnlyOUT
End Function
Anzeige
Schreibschutzattribut einer geöffneten Word-Datei löschen
05.08.2023 09:53:30
reiner
Hallo Ulf,

vielen Dank für deinen Vorschlag, der zwar das Dateiattribut "SCHREIBGESCHÜTZT" aufhebt, aber leider das grundsätzliche Problem nicht auflöst.

Ich habe ein wenig recherchiert und dabei gelernt, dass bei Excel- und Word-Dateien die Begriffe "Attribut Schreibschutz" und "DokumentenSchutz" benutzt werden.
Deine Lösung bezieht sich m. E. auf die Aufhebung des "Attribut Schreibschutz".

Bei Excel-Dateien gibt es aber auch einen "internen" Schreibschutz der sich bei Excel mit der Methode "ChangeFileAccess" aufheben lässt.
Eine ähnliche Methode suche ich für die Aufhebung des "internen" Schreibschutzes bei Word-Dateien.
Nach Anwendung deines Vorschlags wird der "Interne" Schreibschutz leider NICHT aufgehoben.

Userbild

reiner
Anzeige
AW: Schreibschutzattribut einer geöffneten Word-Datei löschen
05.08.2023 11:39:33
Oberschlumpf
Moin,

spätestens jetzt würd zumindest ich dann mal in einem Word-Forum nachfragen.
Wenn du das schon getan hast, oder demnächst tun wirst, würde ich mich freuen, wenn du hier mit deiner nächsten Antwort uns den Link zeigst - wir wolln ja gern auch dazulernen :-)

Ciao
Thorsten
Schreibschutzattribut einer geöffneten Word-Datei löschen
06.08.2023 13:43:59
reiner
Hallo Thorsten,

du wolltest gern dazulernen...

es gibt zu meiner Anfrage (ChangeFileAccess) keine mit Excel vergleichbare Methode in WORD.
Die einzige Möglichkeit eine schreibgeschützte geöffnete WORD-Datei zu bearbeiten und am gleichen Tag erneut zu speichern (sofern das Tagesdatum ein Teil des Dateinamens ist) besteht darin, den Dateinamen der WORD-Datei mit einem Zusatzttext zu versehen )Version1, Version2 usw.

Damit betrachte ich die Anfrage als abgeschlossen
reiner
Anzeige
AW: Schreibschutzattribut einer geöffneten Word-Datei löschen
06.08.2023 18:47:59
Oberschlumpf
Hi reiner,

und wenn auch du noch etwas lernen möchtest :-), dann versuch es mal hiermit:


Sub test1()

SetAttr "D:\Herber\Microsoft Word-Dokument (neu)1.docm", vbNormal 'deaktiviert den Dateischreibschutz

End Sub

Sub test2()

SetAttr "D:\Herber\Microsoft Word-Dokument (neu)1.docm", vbReadOnly 'aktiviert den Dateischreibschutz

End Sub

Pfad + Dateiname musst du natürlich anpassen.
Bei mir funktionierts - bei dir auch?

Ciao
Thorsten
AW: Schreibschutzattribut einer geöffneten Word-Datei löschen
06.08.2023 18:20:51
Oberschlumpf
Hi reiner,

ok, danke für deine Antwort.
Ich bin aber noch immer der Meinung (was ich in meiner 1. Antwort schon erwähnte), dass es bestimmt möglich ist, die jetzt noch schreibgeschützte Word-Datei...
- vor! dem Öffnen den Dateischreibschutz zu deaktivieren
- ab jetzt deine gewünschten Änderungen in der Word-Datei
- jetzt Datei speichern + schließen
- und erst jetzt den Dateischreibschutz wieder aktivieren

Aber ok, du hast dir ja auch helfen können.
Ich wünsch dir noch n schönen Abend.

Ciao
Thorsten
Anzeige
Schreibschutzattribut einer geöffneten Word-Datei löschen
05.08.2023 12:38:44
reiner
das mache ich

112 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige