Das Archiv des Excel-Forums

Ordner mit Unterordnern/Dateien kopieren

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
RefEdit
Bild

Betrifft: Ordner mit Unterordnern/Dateien kopieren
von: Peter S

Geschrieben am: 06.08.2008 22:40:53

Hallo Ihr lieben,
hab jetzt intensiv die Recherche gequält oder war es umgekehrt?
Es is relstiv einfach zu beschreiben was ich möchte:
Auf einem Stick habe ich einen Ordner mit Unterordnern/Dateien die ich aus der Excel heraus in einen neu zu bildenden Ordner C:\Test kopieren möchte.
Wie macht man sowas in Office 2007, dass es auch in älteren Versionen funktioniert???
Danke für Euere Impulse
Peter S

Bild

Betrifft: AW: Ordner mit Unterordnern/Dateien kopieren
von: Ramses
Geschrieben am: 06.08.2008 23:00:59
Hallo
Da sollte schon was dabei sein
http://www.google.ch/search?hl=de&q=folder+copy+excel+vba&btnG=Google-Suche&meta=
Aber es reicht auch ein Blick in VBA-Online Hilfe
*******************
CopyFolder-Methode

Beschreibung
Kopiert einen Ordner von einem Ort an einen anderen.
Syntax
Objekt.CopyFolder Quelle, Ziel[, überschreiben]
Die Syntax der CopyFolder-Methode besteht aus folgenden Teilen:
Teil Beschreibung
Objekt Erforderlich. Immer der Name eines FileSystemObject.
Quelle Erforderlich. Zeichenfolge für die Ordnerspezifikation für einen oder mehrere zu kopierende Ordner, die Platzhalterzeichen enthalten kann.
Ziel Erforderlich. Zeichenfolge für das Ziel, an das die Ordner und Unterordner aus Quelle kopiert werden sollen. Platzhalterzeichen sind nicht zulässig.
überschreiben Optional. Boolescher Wert, der angibt, ob vorhandene Ordner überschrieben werden. Wenn er True ist, werden die Ordner überschrieben; ist er False, werden sie nicht überschrieben. Die Voreinstellung ist True.
Anmerkungen
Platzhalterzeichen können nur in der letzten Pfadkomponente des Arguments Quelle verwendet werden. Sie können z.B. folgendes verwenden:
FileSystemObject.CopyFolder "c:\mydocuments\letters\*", "c:\tempfolder\"
Nicht aber:
FileSystemObject.CopyFolder "c:\mydocuments\*\*", "c:\tempfolder\"
Wenn Quelle Platzhalterzeichen enthält oder Ziel mit einem Pfadtrennzeichen (\) endet, wird angenommen, daß Ziel ein vorhandener Ordner ist, in den übereinstimmende Ordner und Unterordner kopiert werden sollen. Andernfalls wird angenommen, daß Ziel der Name eines zu erstellenden Ordners ist. In beiden Fällen können beim Kopieren eines einzelnen Ordners vier Dinge passieren.
Wenn es Ziel nicht gibt, wird der Quellordner und sein gesamter Inhalt kopiert. Dies ist normalerweise der Fall.
Wenn Ziel eine vorhandene Datei ist, kommt es zu einem Fehler.
Wenn es sich bei Ziel um ein Verzeichnis handelt, wird versucht, den Ordner und seinen gesamten Inhalt zu kopieren. Wenn eine in Quelle enthaltene Datei bereits in Ziel vorhanden ist, kommt es zu einem Fehler, wenn überschreiben False ist. Andernfalls wird versucht, die Datei über die vorhandene Datei zu kopieren.
Wenn es sich bei Ziel um ein schreibgeschütztes Verzeichnis handelt, kommt es zu einem Fehler, wenn Sie versuchen, eine vorhandene schreibgeschützte Datei in dieses Verzeichnis zu kopieren und überschreiben False ist.
Es kommt außerdem zu einem Fehler, wenn eine Quelle, die Platzhalterzeichen verwendet, mit keinem der Ordner übereinstimmt.
Die CopyFolder-Methode hält beim ersten aufgetretenen Fehler an. Es wird nicht versucht, Änderungen zurückzusetzen oder aufzuheben, die vor dem Auftreten eines Fehlers durchgeführt wurden.
*************************
Gruss Rainer

Bild

Betrifft: AW: Ordner mit Unterordnern/Dateien kopieren
von: Peter S

Geschrieben am: 06.08.2008 23:49:17
Hallo Ramses,
es sollte dann doch wie nachstehend funktionieren?
Option Explicit


Sub Kopieren()
Dim filesystem As Object
Dim name As String
name = "HSVInnSalzach"
Set filesystem = CreateObject("Scripting.FileSystemObject")
filesystem.CopyFolder "E:\Obedience\HSVInnSalzach\*", "C:\Obedience\" & name
Set filesystem = Nothing
End Sub


Sagt aber immer Pfad niocht gefunden??? Wo liegt der Fehler
Danke
Peter S

Bild

Betrifft: AW: Ordner mit Unterordnern/Dateien kopieren
von: Erich G.
Geschrieben am: 07.08.2008 07:37:13
Hallo Peter,
mit
filesystem.CopyFolder "E:\Obedience\HSVInnSalzach\*", "C:\Obedience\" & name
versuchst du, alle Unterordner von E:\Obedience\HSVInnSalzach auf die Festplatte zu kopieren.
Der Zielordner C:\Obedience\" & name, in den diese Unterordner sollen, muss dann schon existieren.
Vermutlich brauchst du keinen Platzhalter. Probier mal
filesystem.CopyFolder "E:\Obedience\HSVInnSalzach", "C:\Obedience\"
Evtl. willst du noch den dritten Parameter (Vorh. Dateien überschreiben) verwenden,
dann musst du ,True oder ,False hinten anhängen.
Die Variable name brauchst du vielleicht nicht mehr.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Bild

Betrifft: AW: Ordner mit Unterordnern/Dateien kopieren
von: Peter S

Geschrieben am: 07.08.2008 08:10:14
Hallo Erich G,
zunächst mal vielen Dank für Deine Hilfe.
Sicherlich wäre die feste Adressierung das Einfachste. Jedoch geht es mir um folgendes:
Da meine Applikation von Vereinen genutzt wird und jeder PC ne andere Hardware/Software-Konfiguration besitzt, lese ich per
Sheets("Tabelle1").Range("A1") = Application.Version
Sheets("Tabelle1").Range("A2") = ThisWorkbook.Path
die Office Version und den augenblicklichen Pfad des Sticks bzw der CD aus.
Diese Variablen will ich dann in meine Prozedur einbauen. Meine eigentliche Applikation für die Vereine ist schon fertig, jedoch erlebe ich die abenteuerlichsten Dinge. Mal fehlen die WebComponents, mal ist ne refedit.dll ohne Verweis, mal sind die microsoft forms nicht vorhanden, manche versuchen das mit Open Office und Win 98. Und dann habe ich immer Ärger und man behauptet meine Applikation würde nicht laufen.
Jetzt habe ich die Schna.. voll davon und erstelle ein Tool, das den individuellen PC so vorbereitet, dass alles automatisiert abläuft, bis hin zum Kopieren meiner Ordnerstruktur in den richtigen Pfad und Erstellen einer Verknüpfung auf den Desktop.
Dieses Tool werde ich nach Fertigstellung auch hier auf den Server laden, denke das können etliche Leute gebrauchen.
Freue mich auf weitere Tips
Dank
Peter S

Bild

Betrifft: AW: Ordner mit Unterordnern/Dateien kopieren
von: Peter S
Geschrieben am: 07.08.2008 08:31:51
Hallo Erich G,
im Moment sieht mein Code folgendermassen aus und funktioniert auch bereits gut.


Sub Kopieren()
Dim filesystem As Object
Dim PathE As String
MkDir "C:\Obedience"
MkDir "C:\Obedience\HSVInnSalzach"
PathE = Sheets("Tabelle1").Range("A2")
Set filesystem = CreateObject("Scripting.FileSystemObject")
filesystem.CopyFolder PathE, "C:\Obedience\HSVInnSalzach"
Set filesystem = Nothing
End Sub


Dies muss so sein da ja der Quellordner u.U. jedesmal woanders liegt, der Zielordner jedoch immer direkt unterhalb der Root.
Gruß
Peter S

Bild

Betrifft: AW: Ordner mit Unterordnern/Dateien kopieren
von: ransi

Geschrieben am: 07.08.2008 08:45:29
HAllo
Wenn du da etwas variabler mit dem Zielordner sein willst, schau dir mal dies an:
Option Explicit

Private Declare Function MakeSureDirectoryPathExists Lib "imagehlp.dll" ( _
    ByVal DirPath As String) As Long

Public Sub test()
Dim Ziel
Dim Quelle
Dim FSO
Ziel = "C:\Temp\zum Testen\"
Quelle = ThisWorkbook.Path
Set FSO = CreateObject("Scripting.FileSystemObject")
MakeSureDirectoryPathExists Ziel
FSO.CopyFolder Quelle, Ziel
Set FSO = Nothing
End Sub


ransi

Bild

Betrifft: AW: Ordner mit Unterordnern/Dateien kopieren
von: Erich G.
Geschrieben am: 07.08.2008 08:43:51
Hi Peter,
du bist recht sparsam mit Infos. Weitere Tipps zu geben fällt daher schwer.
Funzt jetzt das Kopieren mit CopyFolder - erst mal mit den festen Verzeichnisnamen?
Du schreibst, dass du ThisWorkbook.Path ausliest. Ist das dann der Ordner, der komplett kopiert werden soll?
Wohin soll der Ordner kopiert werden? Ist der Name des Zielordners abhängig von ThisWorkbook.Path?
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Bild

Betrifft: AW: hat sich erledigt
von: Erich G.

Geschrieben am: 07.08.2008 08:47:20
Hi Peter,
habe dein letztes Posting gerade erst gesehen.
Grüße von Erich aus Kamp-Lintfort

Bild

Betrifft: AW: Ordner mit Unterordnern/Dateien kopieren
von: Ramses
Geschrieben am: 07.08.2008 08:48:23
Hallo
am elegantesten löst du es wohl so

Option Explicit

Sub test()
    Dim myFSO As Object
    Dim tarMain As String, tarSub As String
    Set myFSO = CreateObject("scripting.Filesystemobject")
    tarMain = Range("A1")
    tarSub = Range("A2")
    If Not myFSO.folderexists(tarMain) Then
        MkDir tarMain
        ElseIf Not myFSO.folderexists(tarSub) Then
        MkDir tarSub
    End If
    With myFSO
        .copyfile ThisWorkbook.Path & "\*.*", tarMain, True
        'Wenn vorhanden
        '.copyfile ThisWorkbook.Path & "\SubFolder\*.*", tarSub, True
    End With
End Sub

Gruss Rainer

Bild

Betrifft: AW: Ordner mit Unterordnern/Dateien kopieren
von: Peter S

Geschrieben am: 07.08.2008 09:30:23
Hallo Ramses,
wow, ne super Lösung...
Vielen Dank

 Bild

Excel-Beispiele zum Thema "Ordner mit Unterordnern/Dateien kopieren"

Excel-Dateien eines Ordners listen download Ordner eines Verzeichnisses in ListBox übernehmen download
Bei Doppelklick Ordner im Explorer öffnen download Dateien einer Ordnerliste in einer Tabelle zusammenstellen download
Ordnernamen eines Verzeichnisses in Zelle einfügen download Dateisuche unter Einbeziehung der untergeordneten Ordner download
Ordnerdialog mit nachfolgendem Dateidialog aufrufen download Aus Dialog Verzeichnis auswählen, dann neuen Ordner erstellen download
Die Eigenschaft "Stichwort" in allen Dateien eines Ordners ändern download Vorhandensein von Verzeichnissen prüfen und Ordner anlegen download
Mails eines Outlook-Ordners in einen anderen verschieben download Ordnereigenschaften auslesen download
Anzahl der Mails in einem vorgegebenem Outlook-Ordner ermitteln download Geschäftstelefon-Nummer in Outlook-Kontaktordner editieren download
Nächsthöhere Ebene des Ordners mit der Arbeitsmappe ermitteln download Blätter in andere Arbeitsmappen kopieren download
Module von Mappe zu Mappe kopieren download Arbeitsblatt 40 mal kopieren download
Schriftgröße beim Kopieren verdoppeln download Beim Kopieren auch die Zeilenhöhe und Spaltenbreite übernehmen download
Tabellencode nach Kopieren des Blattes löschen download Arbeitsmappe blitzschnell kopieren download
VBE-Namen der Blattmodule beim Kopieren festlegen download Blattinhalt von einer zur anderen Arbeitsmappe kopieren download
Formel bis zur letzten Zeile der Nebenspalte kopieren download Datei kopieren, wenn noch nicht vorhanden download
Zeilenweise von Blatt zu Blatt kopieren download Erste Druckseite in eine neue Arbeitsmappe kopieren download
Durch DoppelKlick Spalte in zweites Arbeitsblatt kopieren download Teilergebnisse einer Serie von Tabellen in anderes Blatt kopieren download
Bei Eintrag in Spalte A aktuelle Zeile kopieren download Filtern und Kopieren download
Zeile mit aktiver Zelle in anderes Blatt kopieren download Zeilen in Abhängigkeit des Wertes in Spalte A kopieren download
Einen von einer Schlüsselziffer abhängigen Bereich kopieren download Vorgegebene Anzahl von Einträgen in 2. Blatt kopieren download
Über InputBox festzulegenden Bereich kopieren download Passwortgeschützte Mappe öffnen, Daten kopieren, schliessen download
Tabellenblatt kopieren und dreistellig fortlaufend numerieren download Jede zweite Zelle kopieren download
Werte aus UserForm-ComboBox suchen und Fundstelle kopieren download Gruppe von Optionsfeldern kopieren und Makro zuweisen download
Nicht zusammenhängenden Bereich in nächste Zeile kopieren download Wert aus UserForm-TextBox suchen und Fundstelle kopieren download
Nur sichtbare Zellen in anderes Arbeitsblatt kopieren download Zeile in Abhängigkeit zur Eingabe in Blätter kopieren download
Werte prüfen und kopieren download Bei Eintrag von X Zeile in andere Tabelle kopieren download
Daten kopieren wenn kein Datum oder Datum > Heute download Blattinhalte dreier Blätter in neues Blatt kopieren download
Kopieren und Umbenennen eines Blattes download Nur Zeilen mit bestimmtem Inhalt kopieren download
Artikelnummern nach Kriterien suchen und Datensätze kopieren download Bild in zweites Blatt an gleiche Position kopieren download
Alle Zeilen ohne Wert in vorgegebener Spalte kopieren download Bei Eintrag Zeile in 2. Blatt kopieren und Tabellen sortieren download
Bildergruppe in anderes Blatt kopieren download Bei Eingabe Formel in der Nebenspalte nach unten kopieren download
Auswahl in andere Arbeitsmappe kopieren, speichern, schließen download Begriff suchen und Fundzeilen in anderes Blatt kopieren download
Aktive Zeile kopieren und löschen download Datensätze, die öfter als 3 mal vorkommen, kopieren download
Den jeweils darüberliegenden Wert in Leerzellen kopieren download Alle Zeilen mit einem Suchbegriff in nächstes Blatt kopieren download
Dateien listen und Blätter in neue Arbeitsmappe kopieren download