ich bekomme in einem aktuellen Projekt die Fehlermeldung: Laufzeitfehler '70' Zugriff verweiger.
Was soll mein Projekt können. Es soll ein einfaches BackUp/Kopierprogramm sein. Ich möchte den Quellordner in den Zielordner kopieren. Immer wenn man auf BackUp klickt wird der Ordner komplett kopiert und unter einem Ordner "Sicherung-..." neu abgelegt. Durch die eingegeben Zahl kann man festlegen wieviele Sicherungen vorhanden bleiben sollen. Die älteste wird dann beim erzeugen einer neuen gelöscht sollte diese Anzahl überschritten werden.
In meiner Testumgebung mit einem kleinen Testordner hat dies super funkioniert, nun wollte ich dies jedoch zwischen meinem User-Ordner und einer externen Festplatte anwenden. Dabei erhalte ich die Fehlermeldung siehe Abbildung unten:
Der Fehler tritt in folgendem Abschnitt auf:
Code:
Public Sub BackUpStarten() 'Quelle https://www.herber.de/forum/archiv/200to204/202244_Makro_Ordner_kopieren.html
Dim FsyObjekt As Object
Dim strQuelle As String 'Pfad Quellverzeichnis
Dim strZiel As String 'Pfad Zielverzeichnis
Dim strNameQuellOrdner As String
Dim strAnzahlSicherungen As String
Set FsyObjekt = CreateObject("Scripting.FileSystemObject")
strQuelle = Tabelle1.Range(p_cstrZelleQuellverzeichnis).Value 'Pfad Quelle
strZiel = Tabelle1.Range(p_cstrZelleZielverzeichnis).Value 'Pfad Ziel
strAnzahlSicherungen = Tabelle1.Range(p_cstrZelleMaximaleAnzahlAnSicherungen).Value ' _
maximale Anzahl an Sicherungen
modZusatzmodule.PruefungPfade (strQuelle) 'prüfen ob Pfad vorhanden
modZusatzmodule.PruefungPfade (strZiel) 'prüfen ob Pfad vorhanden
strNameQuellOrdner = modZusatzmodule.NameQuellOrdnerErmitteln(strQuelle) 'Name des _
Quellordners ermittel
strZiel = modZusatzmodule.PfadSicherungsordner(strZiel, strNameQuellOrdner) 'neuer _
Zielordner definieren
FsyObjekt.CopyFolder strQuelle, strZiel, True 'zuerst Quellverzeichnis dann Zielverzeichnis _
Syntax https://docs.microsoft.com/de-de/office/vba/language/reference/user-interface-help/copyfolder-method
strZiel = Tabelle1.Range(p_cstrZelleZielverzeichnis).Value 'Ziel nochmal neu definieren, _
da alter strZiel noch ergänzt wurde um die Sicherung in Sicherungsordner abzulegen
modLoeschenAlterSicherunge.AlteSicherungenLoeschen strZiel, strAnzahlSicherungen
End Sub
Im Zielordner befinden sich dann "nur" folgende Dateien, alle weiteren Dateien/Unterordner im User-Ordner werden nicht abgelegt, da der Code nicht weiterläuft aufgrund der Fehlermeldung.
Was kann ich tun um die Fehlermeldung zu umgehen bzw. wegzubekommen? Liegt es eventuell an einer schreibgeschützen Datei? Kann ich diese irgendwie überspringen (wie im Windows-Explorer) wenn eine entsprechende Meldung kommt?
Excel-Datei könnt Ihr euch über den unten genannten Link downloaden.
Link: https://www.herber.de/bbs/user/132909.xlsm
Aber Achtung!!!: Ich konnte den Code noch nicht komplett Testen. Ich habe diesen so Programmiert, dass dieses "Programm" immer nur 3 Sicherungen ablegt. Die älteste wird somit beim Erzeugen einer neuen Sicherung gelöscht. Ich muss aber noch testen ob dies zuverlässig und sicher funktioniert, nicht das versehentlich wichtige Daten gelöscht werden.
Vielen Dank euch schon jetzt für die Hilfe.
Gruß
Dominik