Hallo Anna,
das Umbennen einer Datei unter Beibehaltung des Dateinamens und unter Angabe eines anderen Pfades bewirkt eine Verschiebung der Datei.
Das wäre hier die gängige Praxis unter VBA.
Bei mir funktioniert das. Hast Du es wirklich ausprobiert oder glaubst Du nur anhand des Codes, dass es nicht gehen würde.
Natürlich gibt es auch Move-Varianten z.B. in FileScriptingsystemen, aber das ist des Aufwands wegen nicht angesagt.
PS: Die zu verschiebende Datei ist natürlich noch nicht im Zielverzeichnis vorhanden, ansonsten müsste sie vorher gelöscht werden mit z.B. Kill...
Wenn Du es anders haben willst, hier ein paar Anregungen:
Hierbei den Unterschied zwischen ActiveWorkbook und Thisworkbook beachten. Ich weiß nicht genau. welche Datei Du verschieben willst.
Aktives Arbeitsblatt speichern unter "C:/Archiv" unter dem selben aktuellen Dateiname.
PS. Arbeitsblatt ist keine Datei....
sDateiname = "C:\Archiv\" & ActiveWorkbook.Name
If Dir$(sDateiname) <> "" Then Kill sDateiname
ActiveWorkbook.SaveAs sDateiname
Die Aktuelle Datei Löschen (Die Datei die gerade noch auf ist)
Das geht nicht, da die Datei gelockt ist. Ggf. die aktuelle Mappe schreibgeschützt machen wie schon gezeigt.
ActiveWorkbook.ChangeFileAccess Mode:=xlReadOnly
sDateiname = ActiveWorkbook.FullName
If Dir$(sDateiname) <> "" Then Kill sDateiname
Die in Zeile 1 abgespeicherte Datei öffnen
PS: Zeile ist keine Zelle
Workbooks.Open Filename:=Range("A1").Value
viele Grüße
Karl-Heinz
|