Hallo Experten,
ich hab ein kleines VBA-Script geschrieben, das ich einfach nicht verstehe… -.-
Szenario: 2 Leute sollen eine Datei bearbeiten können. Der Speicherort ist shared. Die Exceldatei hat ein Schreibkennwort, kann aber nicht vor unbefugter Löschung geschützt werden…
Um zu verhindern, dass jemand „save as“ macht und unsere Daten überschreibt hab ich ein Script geschrieben, das ein Backup auf dem Server und lokal speichern soll.
das tut es soweit auch - aber mit Einschränkungen…
Ist vom aktuellen Tag keine Datei vorhanden, dann wird diese völlig korrekt angelegt - sowohl lokal als auch auf dem Server.
Ist die Datei allerdings schon vorhanden, dann wird die Datei nur noch an dem Ort gespeichert, von dem aus sie geöffnet wurde.
Normalerweise würde ich erwarten, dass nachgefragt wird ob ich die Datei überschreiben will, aber das geschieht nicht…
Worin liegt der Fehler?
Hier mein kleines Makro:
Sub backup\_speichern()
On Error Resume Next 'Fehler beim Verzeichniswechsel verhindern...
ChDir ("D:\_DATA") ' Ingos verzeichnis
ChDir ("D:\Save\Badminton") ' Michis Verzeichnis
' erstellen des Dateinamens
datum = Date
sorted = "Badminton\_" & Mid$(datum, 7, 4) & "-" & Mid$(datum, 4, 2) & "-" & Mid$(datum, 1, 2) & ".xls"
' lokales speichern
savename = CurDir & "\" & sorted
ActiveWorkbook.SaveAs Filename:=savename, FileFormat:=xlNormal, CreateBackup:=False
' überprüfung
check = ThisWorkbook.FullName
If check = savename Then
Msg = "Backup erfolgreich..." & Chr(10) & Chr(10)
Else
Msg = "Lokale Speicherung gescheitert..." & Chr(10) & Chr(10)
End If
' speichern im Netz...
serverpath = "\\de.local\data\filetransfer\Huber\"
serversavename = serverpath & sorted
ActiveWorkbook.SaveAs Filename:=serversavename, FileFormat:=xlNormal, CreateBackup:=False
' überprüfung
check = ThisWorkbook.FullName
If check = serversavename Then
messi = Msg & "Netzspeicherung erfolgreich..."
Else
messi = Msg & "Netzspeicherung gescheitert..."
End If
MsgBox messi
End Sub
vielen Dank
Munich