Anzeige
Archiv - Navigation
1388to1392
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

VBA - mehrere Verzeichnisse abarbeiten

VBA - mehrere Verzeichnisse abarbeiten
23.10.2014 15:44:09
Janni
Hallo zusammen,
habe mir ein Makro zusammengeschustert, welche Dateien älter als heute aus einem fest definierten Verzeichnis kopiert.
Jetzt möchte ich gerne noch weitere Verzeichnisse auslesen. Zwar könnte ich den code nun mehrfach kopieren und das Verzeichnis ändern, aber dass muss doch noch einfacher gehen oder? Kann mir da bitte jemand weiterhelfen?
1. Verzeichnis: "C:\Test\test1\"
2. Verzeichnis "D:\Test\"
3. Verzeichnis "D:\Test\abc/edf"
etc. bis zu 20 verschiedenen insgesamt
Gruß
Jan
Auszug aus dem Makro:
pfad = "C:\Test\test1\"
tmp = Dir(pfad & "*.xls*")
Do While tmp <> ""
Set fso = CreateObject("Scripting.FileSystemObject")
Set fil = fso.getfile(pfad & tmp)
dat = fil.DateLastModified
If dat > Range("B1").Value Then
'Datei = fil
'dat1 = dat
FsyObjekt.copyfile fil, "C:\\Test\"
End If
tmp = Dir
Loop
End Sub

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA - mehrere Verzeichnisse abarbeiten
24.10.2014 08:12:13
Bastian
Hallo,
lass das Makro, welches die Dateien kopiert, als Unterprogramm laufen. Ein zweites Makro weist der Variablen "pfad" nacheinander die Verzeichnisse zu, und ruft dann jedes mal mit "call ..." das Makro auf.
Wenn Du die Verzeichnisse in einem Tabellenblatt stehen hast, könnte das zweite Makro die Tabelle in einer Schleife durchlaufen.
Gruß, Bastian

AW: VBA - mehrere Verzeichnisse abarbeiten
24.10.2014 11:01:01
Janni
Hi Bastian,
das mit dem Call hatte ich schon versucht, bin aber kläglich gescheitert. Er erkennt die Pfadzuweisung leider nicht. Unten nochmal das komplette Makro.
Könntest du mir evtl. bitte den code dafür bereitstellen? Entweder als call oder über ein Tabellenblatt?
Gruß
Janni
Sub get_files_()
Dim fso As Object
Dim fil As Object
Dim FsyObjekt As Object
Dim dat As String
Set FsyObjekt = CreateObject("Scripting.FileSystemObject")
pfad = "C:\Test\Test1\"
tmp = Dir(pfad & "*Varian*.xls*")  'Dateiname
Do While tmp  ""
Set fso = CreateObject("Scripting.FileSystemObject")
Set fil = fso.getfile(pfad & tmp)
dat = fil.DateLastModified
If dat > Range("B1").Value And dat 

Anzeige
AW: VBA - mehrere Verzeichnisse abarbeiten
24.10.2014 11:39:32
Bastian
Hallo Janni,
versuch es mal so:
Und versuch mal Dir anzugewöhnen, alle Variablen zu deklarieren. Mit der Oprion Explicit wird dies erzwungen.
Gruß, Bastian
Option Explicit
Dim fso As Object
Dim fil As Object
Dim FsyObjekt As Object
Dim tmp
Dim dat As String
Dim pfad As String
Sub Verzeichnisse()
pfad = "C:\Test\Test1\"
Call get_files_
pfad = "C:\Test\Test2\"
Call get_files_
pfad = "C:\Test\Test3\"
Call get_files_
'und so weiter...
End Sub
Sub get_files_()
Set FsyObjekt = CreateObject("Scripting.FileSystemObject")
tmp = Dir(pfad & "*.xls*")  'Dateiname
Do While tmp  ""
Set fso = CreateObject("Scripting.FileSystemObject")
Set fil = fso.getfile(pfad & tmp)
dat = fil.DateLastModified
If dat > Range("B1").Value And dat 

Anzeige
AW: VBA - mehrere Verzeichnisse abarbeiten
24.10.2014 11:42:01
Bastian
sorry,
die Zeile
tmp = Dir(pfad & "*.xls*") 'Dateiname
bitte wieder in
tmp = Dir(pfad & "*Varian*.xls*") 'Dateiname
zurückändern.

AW: VBA - mehrere Verzeichnisse abarbeiten
24.10.2014 17:22:44
Janni
Vielen Dank Bastian,
werde ich Montag gleich mal ausprobieren. Und wieder etwas gelernt, wunderbar :)
Gruß
Janni

AW: VBA - mehrere Verzeichnisse abarbeiten
24.10.2014 19:23:59
ChrisL
Hi Bastian
Oder so...
Sub Verzeichnisse()
Call get_files_("C:\Test\Test1\")
Call get_files_("C:\Test\Test2\")
Call get_files_("C:\Test\Test3\")
'und so weiter...
End Sub


Sub get_files_(pfad As String)
Dim fso As Object
Dim fil As Object
Dim FsyObjekt As Object
Dim tmp
Dim dat As String
Set FsyObjekt = CreateObject("Scripting.FileSystemObject")
tmp = Dir(pfad & "*.xls*")  'Dateiname
Do While tmp  ""
Set fso = CreateObject("Scripting.FileSystemObject")
Set fil = fso.getfile(pfad & tmp)
dat = fil.DateLastModified
If dat > Range("B1").Value And dat 

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige