Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.04.2024 18:57:33
17.04.2024 16:56:58
Anzeige
Archiv - Navigation
1228to1232
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

Datei speichert trotz Schreibschutz

Datei speichert trotz Schreibschutz
reiner
Hallo Leute,
lt. Programmcode soll eine Datei nach jeder Änderung mit dem Befehl:

ActiveWorkbook.Save

gespeichert werden.
Während die Programierung überarbeitet wurde, habe ich die Datei mit Schreibschutz geöffnet um die bisherige Version nicht zu überspeichern.
Die Datei wurde dennoch gespeichert allerdings in einem anderen Verzeichnis.
Kann ich erzwigen dass die Datei ausschleßlich in einem bestimmten Verzeichnis gespeichert wird?
mfg
reiner

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

Betreff
Benutzer
Anzeige
AW: Datei speichert trotz Schreibschutz
10.09.2011 09:05:42
fcs
Hallo reiner,
absolut erzwingen ist nur bedingt möglich.
Solange beim Öffnen der Datei die Makros aktiviert werden, kann man steuern, dass mit "Speichern unter" oder bei schreibgeschützt geöffneter Datei die neu Datei in einem bestimmten Verzeichnis gespeichert werden muss.
Der Code ist so aufgebaut, dass die "neue" Datei im gleichen Verzeichns gespeichert werden muss wie die geöffnete Datei, aber nicht unter dem gleichen Namen.
Erfahrene Anwender können das aber einfach umgehen, indem sie die Ereignismakros deaktivieren.
Gruß
Franz

'Code unter DieseArbeitsmappe
'Erstellt unter Excel 2007
Option Explicit
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim sPath As String, sDateiName As String, vAuswahl
Dim sDir As String
On Error GoTo Fehler
sDir = Me.Path 'Verzeichnis dieser Datei merken bzw. das Verzeichnis unter dem _
gespeichert werden soll
If SaveAsUI = True Or Me.ReadOnly = True Then
'Speichern erfolgt über den Dialog-Speichern unter
Cancel = True 'Anzeige des Standard-Dialogs abbrechen
Application.EnableEvents = False
'Vorgabe für neuen Dateinamen
sDateiName = Left(Me.Name, InStrRev(Me.Name, ".") - 1) & " Kopie"
DialogSaveAs:
With Application.FileDialog(msoFileDialogSaveAs)
.InitialFileName = sDir & Application.PathSeparator & sDateiName
.Title = "### Datei speichern unter ###"
.AllowMultiSelect = False
If .Show = False Then
'Dialog abgebrochen
Else
vAuswahl = .SelectedItems(1)
sPath = Left(vAuswahl, InStrRev(vAuswahl, Application.PathSeparator) - 1)
If LCase(sPath)  LCase(sDir) Then    'Prüfung Verzeichnis
MsgBox "Diese Datei darf nur im Verzeichnis """ & sDir & """ gespeichert werden!", _
vbInformation + vbCritical, "Datei - Speichern unter"
GoTo DialogSaveAs
ElseIf LCase(vAuswahl) = LCase(Me.FullName) Then  'Prüfung Dateiname
MsgBox "Die Datei """ & Me.Name _
& """ darf nicht unter dem gleichen Namen gespeichert werden!", _
vbInformation + vbCritical, "Datei - Speichern unter"
GoTo DialogSaveAs
Else
Application.DisplayAlerts = False
Me.SaveAs Filename:=vAuswahl, addtomru:=True
Application.DisplayAlerts = True
End If
End If
End With
Application.EnableEvents = True
End If
Err.Clear
Fehler:
With Err
Select Case .Number
Case 0  'Alles OK
Case Else
MsgBox "Fehler-Nr.: " & .Number & vbLf & .Description, vbInformation, "Fehler in "" _
Before Save"
Application.EnableEvents = True
End Select
End With
End Sub

Anzeige
AW: Datei speichert trotz Schreibschutz
11.09.2011 16:36:09
reiner
hallo Franz,
wenn die "neue" Datei im gleichen Verzeichnis wie die geöffnete Datei gespeichert wird, aber unter einem anderen Namen, ist meine Vorstellung erfüllt.
Ich werde deinen Vorschlag testen, vielen Dank dafür
mfg
reiner
AW: Datei speichert trotz Schreibschutz
12.09.2011 10:27:34
reiner
hallo Franz,
ich habe deinen Vorschlag getestet und festgestellt dass er immer dann aktiviert wird wenn ich die Datei "von Hand" speichere.
Ist es auch möglich diesen Programmcode anzupassen damit er makrogesteuert an Stelle des _ Befehls:

ActiveWorkbook.Save 
gestartet wird?
Dann ließe er sich in meinen Makroablauf integrieren und würde den o.g. Befehl ersetzen.
mfg
reiner
Anzeige
AW: Datei speichert trotz Schreibschutz
12.09.2011 17:16:21
fcs
Hallo Reiner,
wenn korrekt konfiguriert, dann wird auch bei "ActiveWorkbook.Save" bzw. "ThisWorkbook.Save" das Workbook_BeforeSave-Ereignismakro ausgeführt.
Es gibt aber ein Problem, wenn die Datei schreibgeschützt geöffnet wird. Normalerweise wid dann der SaveAs-Dialog ausgeführt. Das harmoniert aber irendwie nicht mit meinem Makro. Der konfigurierte Dialog wird zwar ausgeführt, aber die Datei nicht unter dem gewählten Namen gespeichert.
Umgehen konnte ich diese nur mit einer in einem allgemeinen Modul als Public deklarien variablen Hilfsvariablen. Diese wird vor dem Speichern-Befehl gesetzt und führt zu einer entsprechenden Meldung, dass manuell gespeichert werden muss.
Hier eine kleine Beispieldatei.
https://www.herber.de/bbs/user/76575.xls
Gruß
Franz
Anzeige
AW: Datei speichert trotz Schreibschutz
12.09.2011 21:42:56
reiner
danke Franz für die zusätzlichen Informationen. Ich werde versuchen diese in mein Makro zu integrieren
mfg
reiner

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige