Unten stehender Code bewirkt folgendes:
In einem Ordner liegen Dateien im Format:
1_Frankfurt_Männer
1_Frankfurt_Frauen
2_Berlin_Männer
2_Berlin_Frauen
Mittels des Codes werden nun die Ordner "Frankfurt" und "Berlin" angelegt und die Dateien (Männer, Frauen) in den jeweilig zugehörigen Stadtordner kopiert.
Nun meine Frage:
1. Ich möchte bewirken, dass die Ordner nicht nach den Städtenamen, sondern nach der Nummerierung am anfang (1,2) benannt werden. Bspw. Ordner mit Namen "1" in dem die Dateien 1_Frankfurt_Männer und 1_Frankfurt_Frauen liegen usw.
2. Wenn die Nummerierung >9 ist, werden keine Ordner erstellt. Das liegt an diesem Codefitzel ("[0-9999]_*_*.*"), wenn ich daraus aber ("[0-9999][0-9999]_*_*.*") mache, werden nur die Ordner >9 erstellt. Wie schaffe ich es, dass alle erstellt werden, auch >99?
Ich hoffe, dass war einigermaßen klar ausgedrückt.
Wäre super, wenn mir da jemand helfen könnte.
Danke schonmal fürs duchlesen!
Tobi
Sub DateienInOrdnerKopieren()
'Kopiert Dateien des Musters 0_Text1_Text2.* in den Ordner "Test1"
Const strPfad = "C:\" 'Pfadname mit "\" am Ende !"
Dim fsoDateien As Object, fsoPfad As Object
Dim fsoObj As Object, fsoDatei As Object, strOrdner As String
Set fsoObj = CreateObject("Scripting.Filesystemobject")
Set fsoPfad = fsoObj.getfolder(strPfad)
Set fsoDateien = fsoPfad.Files
For Each fsoDatei In fsoDateien
If fsoDatei.Name Like "[0-9999]_*_*.*" Then
strOrdner = Split(fsoDatei.Name, "_")(1)
MakeSureDirectoryPathExists strPfad & strOrdner & "\"
FileCopy strPfad & fsoDatei.Name, strPfad & strOrdner & "\" & fsoDatei.Name
End If
Next
MsgBox "Fertig !"
End Sub