Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1524to1528
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

Dateien und Ordner kopieren

Dateien und Ordner kopieren
20.11.2016 13:45:09
Barbara
Hallo
ich bräuchte einige Hintergrundinformationen zu einem Makro, das ich im Internet gefunden habe. Es kopiert Ordner.
Set fso = CreateObject("Scripting.FileSystemObject")
Set F1 = fso.GetFolder(sDatei1)
F1.Copy (sdatei2)
(kann diese Zeilen leider nicht so schön darstellen, wie andere in diesem Forum)
wobei sdatei1 und sdatei2 Pfad mit Ordnernamen als String sind.
Dazu einige Fragen:
Da wird offensichtlich ein Objekt angelegt, weiss es aber nicht genau, weil Neuland für mich.
Was bedeuten hier die Ausdrücke Scripting und FileSystemObject?
Was kann man alles damit machen? Ich sehe, dass .Getfolder und .Copy das machen, was ich erreichen will. Doch will ich mehr.
Ich würde unter anderem zum Beispiel prüfen wollen, ob ein bestimmter Ordner existiert und leer ist.
Nun, was noch alles kann man damit tun? Bietet das noch weitere Funktionen? Kann man das im VBA-Editor irgendwo sehen? Die automatische Vervollständigungsautomatik scheint hier nichts herzugeben.
LG, B.

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Dateien und Ordner kopieren
20.11.2016 17:58:28
ransi
Hallo BArbara,
Gib in der VBA-Hilfe mal "scripting" ein.
Dann kommt die Hilfe zum FilesystemObject.
ransi
AW: Dateien und Ordner kopieren
20.11.2016 22:13:59
Barbara
Hab es gefunden, ransi. Danke
Dazu noch einige Fragen:
Wenn ich nur eine Datei kopieren will, kann ich aber statt fso.copyfile auch FileCopy verwenden, das ich gleich verwenden kann, ohne extra ein Objekt erzeugen zu müssen. Ist das zu bevorzugen?
Außerdem funktioniert bei fso. die Autovervollständigung nicht, mit der Auswirkung, dass eine falsch buchstabierte Methode, wenn ich zB fso.Kopyfile eintippe, sich erst beim Ausführen mit einer Fehlermeldung bemerkbar macht.
LG, B
Anzeige
Early binding, dann funzt intellisens
21.11.2016 10:21:40
ransi
Hallo Barbara,
Setz mal unter:
Extras-Verweise den Verweis auf die Microsoft Scripting Runtime Bibliothek.
Userbild
Jetzt kennt dein VBE das FilesystemObject.
Option Explicit

Sub machs()
Dim FSO As Object
Dim objFolder As Folder
Set FSO = New Scripting.FileSystemObject
Set objFolder = FSO.GetFolder("C:/Temp")

End Sub


So funktioniert dann auch intellisens.
ransi
Anzeige
AW: Early binding, dann funzt intellisens
21.11.2016 19:16:57
Barbara
Hi ransi,
habe den haken gesetzt.
intellisens geht aber trotzdem nicht.
Woran kann das liegen?
LG, B.
AW: Early binding, dann funzt intellisens
21.11.2016 19:21:07
ransi
HAllo,
Du musst dann das FSO so deklarieren:
Sub machs()
Dim FSO As Object
Dim objFolder As Folder
Set FSO = New Scripting.FileSystemObject
Set objFolder = FSO.GetFolder("C:/Temp")
End Sub
Nicht mit Createobject....
ransi
AW: Early binding, dann funzt intellisens
21.11.2016 19:54:34
Barbara
Hab ich ja gemacht.
Immerhin, die Kleinbuchsteben werden automatisch korrigiert:
Set objFolder = FSO.GetFolder("C:/Temp")
Wenn ich schreibe:
Set objFolder = FSO.
sollte ja ein Vorschlag kommen, oder? Das ist doch Intelliesense, oder?
LG, B.
Anzeige
AW: Early binding, dann funzt intellisens
21.11.2016 20:20:01
ransi
Hallo BArbara,
Sorry,
Kommt davon wenn man nicht sorgfältig testet.
So gehts:
Sub machs()
Dim FSO As Scripting.FileSystemObject
Dim objFolder As Folder
Set FSO = New Scripting.FileSystemObject
Set objFolder = FSO.GetFolder("C:/Temp")
End Sub

AW: Early binding, dann funzt intellisens
21.11.2016 22:57:09
Barbara
Danke, das funktioniert.
Vielen Dank, ransi.
Noch eine Frage:
Ist FileCopy eine Excel-VBA-Funktion?
Ist einfacher, weil ich ohne dieses scripting auskomme.
Gibt es vielleicht eine Excel-VBA-Funktion, mit der Ordner kopiert werden können?
LG, B.
FileCopy, CopyFolder, VisualBasic.dll...
22.11.2016 07:42:28
Case
Hallio Barbara, :-)
... "FileCopy" kommt aus der "Visual Basic Runtime Library" und ist in der "VisualBasic.dll" enthalten. Kommt z. B. durch jede ".NET" Installation auf den Windows PC. ;-)
FileSystem.FileCopy-Methode: (String, String)...
Ordner kopieren kannst Du z. B: mit "Shell" und "XCOPY", oder mit "API". Natürlich auch mit dem "FileSystemObject". Da ist es dann ein Einzeiler: ;-)
CreateObject("Scripting.FileSystemObject").CopyFolder "C:\Temp\temp-Dateien", "C:\Temp\Save"
Der Zielordner muss nicht vorhanden sein: ;-)
CopyFolder-Methode...
Servus
Case

Anzeige
AW: FileCopy, CopyFolder, VisualBasic.dll...
22.11.2016 22:06:16
Barbara
Hallo case,
danke für die aufschlussreiche Info.
Auch der Link am Schluss "Servus" birgt einiges Interessantes, hat bereits ein Lesezeichen bekommen. Das nächste Wochenende ist gerettet.
LG, B.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige