Das klappt schon mal ganz gut. Das erste Mal, dass die Excel
Tabelle was ausspuckt
A1 - Fehler, B1 - C:\hubraum_1
A2 - Fehler, B2 - C:\hubraum_2
A3 - Fehler, B3 - C:\hubraum_3
Ich habe hier in meiner „Testumgebung“ (klingt das protzig)
nur diese 3 Odner mal angelegt, die derzeit leer sind. Ich
werde jetzt jeweils drei Worddokumente reinpacken, die
unterschiedliche Datumsangaben haben.
Hallo,
schau mal:
http://rapidshare.com/files/393220363/kwFSO1.xls.html
Die Subs Erzeugen und Loeschen mußte noch anpassen, am besten dort mit filecopy ältere dateien irgendwoher reinkopieren um eine gute Testumgebung zu schaffen.
Nachfolgend der Code der mappe.
Und, ich weiß nicht genau ob du 100%ig verstanden hast was ich, andere brauchen um dir zu helfen.
du hast da in C:\ diverse Ordner. Vba muß erkennen können welche davon gemeint sind. Z.B. Erkennungszeichen, die Namen fangen alle mit „hub“ an, okay.
Wenn sie nun alle so aufgebaut sind:
hubxxx_xxxxxx_Zahl
kann man sie leicht für die Anzeige umbauen in
Hubraum Zahl
Alle Ordnernamen die nicht dem Aufbau hubxxx_xxxxxx_Zahl entsprechen mußte uns zeigen,und sagen wie die denn nun umgewandelt werden sollen.
Wenn ich schon weiß es gibt ordnernamen die heißen schon hubraum 2, kein Akt, dann berücksichtige ich das und wandle ggfs. nur das h zu H.
Aber letztlich muß ich die Namensstruktur aller in Frage kommenden Ordner kennen und wie sie zur Anzeige umgewandelt werden sollen um Code zu schreiben der das macht.
Gruß
Reinhard
Sub Ordnerliste()
Dim objFSO As Object, objDir As Object, Ordn, D, Zei As Long
Dim objFile
Const strDir As String = "C:\"
Call Erzeugen
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objDir = objFSO.getfolder(strDir)
Range("A:C").Clear
For Each Ordn In objDir.subfolders
If UCase(Ordn) Like "C:\HUBR\*" Then
Zei = Zei + 1
D = Split(Ordn, "\_")
Cells(Zei, 1) = IIf(UBound(D) 2, "Fehler", "Hubraum " & D(UBound(D)))
Cells(Zei, 2) = Ordn
Cells(Zei, 3) = Format(ZeigeDateizugriffsinfo(Ordn), "DD.MM.YYYY")
End If
Next Ordn
Call Loeschen
Range("A:C").Columns.AutoFit
End Sub
'
Function ZeigeDateizugriffsinfo(Ordn)
Dim objFSO, Dat, objFiles, objDir, Datum
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objDir = objFSO.getfolder(Ordn)
If objDir.Files.Count Datum Then Datum = Dat.DateLastModified
'MsgBox Dat.DateCreated
'MsgBox Dat.DateLastAccessed
Next Dat
ZeigeDateizugriffsinfo = Datum
End Function
'
Sub Erzeugen()
Close
MkDir "C:\hubr\_1234\_7"
Open "C:\hubr\_1234\_7\test.txt" For Output As #1
Print #1, "jhefgkjes"
Close #1
Open "C:\hubr\_1234\_7\test2.txt" For Output As #1
Print #1, "jhefgkjes"
Close #1
Open "C:\hubr\_1234\_7\test3.txt" For Output As #1
Print #1, "jhefgkjes"
Close #1
MkDir "C:\hubr\_12347"
MkDir "C:\hubr\_134567\_456"
MkDir "C:\hubr\_234aqqwe1234\_4"
End Sub
'
Sub Loeschen()
Kill "C:\hubr\_1234\_7\*.\*"
RmDir "C:\hubr\_1234\_7"
RmDir "C:\hubr\_12347"
RmDir "C:\hubr\_134567\_456"
RmDir "C:\hubr\_234aqqwe1234\_4"
End Sub