Hallo
ich habe eine Datei (Excell2000) bei dieser kann ich auf eine Schaltfläche drücken und es wird eine Kopie in ein Archivordner geschrieben.
Nun habe ich das Problem das beim VBA Befehl savecopyas kein Passwort vergeben werden kann.
Zusätzlich sollten noch alle Verknüpfungen gelöscht werden.
Wie kann ich eine Kopie des Files mit Passwort in ein Archiv schreiben und alle Verknüpfungen deaktivieren?
hab’s schon versucht nachträglich im Ordner die ungeschützten Dateien zu schützen=>funktioniert aber nicht.
Wer kann mir helfen
Gruss Urs
Bsp.Makro um Dateien in Ordner zu schützen
With Application.FileSearch
.NewSearch
.LookIn = „N:\Archiv“
.SearchSubFolders = False
.MatchTextExactly = True
.FileType = msoFileTypeExcelWorkbooks
If .Execute() > 0 Then
For i = 1 To .FoundFiles.Count
Application.DisplayAlerts = False
On Error Resume Next
Dateiname = .FoundFiles(i)
Workbooks.Open Filename:=Dateiname, Updatelinks:=False, WriteResPassword:=„falsches Pwd“
Dateinameaktuell = ActiveWorkbook.Name
ActiveWorkbook.SaveAs Filename:=Dateiname, FileFormat:= _
xlNormal, Password:="", WriteResPassword:=„archiv“, ReadOnlyRecommended:= _
False, CreateBackup:=False 'hier passwort usw
MsgBox („Die Datei“ & Dateiname & " wurde gesichert"), vbOKOnly
ActiveWorkbook.Close
Next i
Else
MsgBox „There were no files found.“
End If
End With
End Sub
Hallo
ich habe eine Datei (Excell2000) bei dieser kann ich auf eine
Schaltfläche drücken und es wird eine Kopie in ein
Archivordner geschrieben.
Nun habe ich das Problem das beim VBA Befehl savecopyas kein
Passwort vergeben werden kann.
Zusätzlich sollten noch alle Verknüpfungen gelöscht werden.
Wie kann ich eine Kopie des Files mit Passwort in ein Archiv
schreiben und alle Verknüpfungen deaktivieren?
hab’s schon versucht nachträglich im Ordner die ungeschützten
Dateien zu schützen=>funktioniert aber nicht.
Wer kann mir helfen
Gruss Urs
Hallo Urs,
das Speichern der Datei mit Passwort in deinem Archivverzeichnis ist kein Problem. Ich arbeite mit EXCEL97, dort ist es nicht möglich die Verknüpfungen einfach zu löschen oder zu deaktivieren. Man kann nur verhindern (mehr schlecht als recht), dass Verknüpfungen automatisch ohne Rückfrage aktualisiert werden.
Da du scheinbar nur die Excel-Dateien mit den Werten im Archiv speichern möchtest, dann ist es evtl. am besten, du ersetzt sämtliche Formeln in der Datei durch ihre Werte. Das geht einfach mit markieren, kopieren und Einfügen (Inhalte nur Werte).
Nachfolgend ein Makro, in dem diese Vorgehensweise umgesetzt ist. Das könntest du an deine Wünsche anpassen. Wenn du verschieden Dateien so sichern möchtest, dann sollte dieses Makro in einer separaten Datei (z.B. PERSONL.XLS) gespeichert werden, die beim Start von EXCEL geöffnet wird. Wenn es nur in der einen Datei arbeiten soll, dann kannst du das Makro in einem der Module dieser Datei speichern.
Sub Datei\_ins\_Archiv()
'
'Aktive Datei ggf. sichern bevor Archiv-Datei erstellt wird
If ActiveWorkbook.Saved = False Then ActiveWorkbook.Save
Datei = ActiveWorkbook.Name
Pfad = "C:\Test\Archiv"
'Überprüfung ob Datei mit gleichem Namen im Archiv vorhanden
With Application.FileSearch
.NewSearch
.LookIn = Pfad
.FileName = Datei
.SearchSubFolders = False
.MatchTextExactly = True
If .Execute() \> 0 Then
MsgText = "Datei mit diesem Namen ist bereits im Archiv vorhanden!" & Chr$(10)
MsgText = MsgText & "Datei überschreiben?"
MsgButton = vbYesNo + vbDefaultButton2 + vbCritical
MsgTitel = "Datei im Achiv sichern"
If MsgBox(MsgText, MsgButton, MsgTitel) = vbNo Then Exit Sub
Kill Pfad & "\" & Datei
End If
End With
'In den Tabellen werden alle Formeln durch ihre Werte ersetzt
'Dadurch werden auch alle Verknüpfungen gelöscht.
'Die Datei enthält anschließend keine Formeln mehr!!!
For Each Tabelle In ActiveWorkbook.Sheets
Tabelle.Select
'Zellbereiche in den folgenden beiden Zeilen ggf. anpassen
Application.Range(Cells(1, 1), Cells(500, 255)).Copy
Application.Range(Cells(1, 1), Cells(500, 255)).PasteSpecial (xlPasteValues)
Application.Range("A1").Select
Next Tabelle
ActiveWorkbook.Sheets(1).Select
'Speichern der Datei im Archiv mit Passwörtern
Passworteingabe:
MsgText = "Passwort?" & Chr$(10)
MsgText = MsgText & "Vorgabe-Passwort kann nicht verwendet werden!!"
MsgText = MsgText & "Mindestlänge ist 4 Zeichen!!"
MsgTitel = "Datei im Achiv sichern"
Text = InputBox(MsgText, MsgTitel, "\*\*\*")
If Text = "\*\*\*" Or Len(Text) Gruß
Franz
Hallo Franz
ein etwas anderer Ansatz als ich mir vorgestellt habe aber ich denke so komme ich viel weiter.
Herzlichen Dank
Urs