Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
712to716
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
712to716
712to716
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Alle xls Dateien auf dem Laufwerk auslesen.......

Alle xls Dateien auf dem Laufwerk auslesen.......
31.12.2005 16:42:08
Sonnenpeter
Hallo zusammen,
ich suche eine Möglichkeit alle xls Dateien auf meinem Laufwerk C auszulesen.
Es sollte das Datum der Erstellung als auch das Datum der letzten Bearbeitung mit angezeigt werden?
Wer hat was brauchbares in seinem Archiv?
Gruß Sonnenpeter.
PS: HINTERGRUND, ich habe 3422 xls Dateien auf Laufwerk C, bin beim Neujahrsputz und möchte alle Dateien die Doppelt sind löschen. Hierzu wäre das Datum der Letzten Bearbeitung hilfreich. Es ist sehr mühsam, das über den Explorer zu tun ;-((((

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Alle xls Dateien auf dem Laufwerk auslesen.......
31.12.2005 16:45:27
Hajo_Zi
Hallo Peter,
schaue mal auf meine Homepage da ist ein Beispiel auf der Seite fremde Dateien.
Link zur Datei


AW: Alle xls Dateien auf dem Laufwerk auslesen.......
31.12.2005 17:06:24
Sonnenpeter
Hallo Hajo,
erst mal Danke ;-)))
For InI = 1 To .FoundFiles.Count
Application.StatusBar = "Datei: " & InI & " von " & TotFiles
' Dateiname in Zelle schreiben
Cells(InI, 1) = .FoundFiles(InI) ' Dateiname mit Pfad
' ergänzt Dateigröße und Dateidatum
Cells(InI, 2) = FileLen(.FoundFiles(InI)) ' Dateigröße
Cells(InI, 3) = FileDateTime(.FoundFiles(InI)) ' Dateidatum
Next InI
End If
Cells(InI, 3) = FileDateTime(.FoundFiles(InI)) ' Dateidatum DER ERSTELLUNG
Gibt es da auch noch die Möglichkeit der letzten Bearbeitung?
Gruß Sonnenpeter
Anzeige
AW: Alle xls Dateien auf dem Laufwerk auslesen.......
31.12.2005 17:09:40
Hajo_Zi
Hallo Peter,
letzte Bearbeitung ist doch = letzte Speicherung? Dateidatum
Gruß Hajo
AW: Alle xls Dateien auf dem Laufwerk auslesen.......
31.12.2005 18:04:15
Sonnenpeter
Auch Dir ein Danke,
einen guten Rutsch ins neue Jahr
Sonnenpeter
Ups..........
31.12.2005 17:12:41
Sonnenpeter
Hallo Hajo,
sorry, aus der Hilfe
FileDateTime-Funktion (Beispiel)
In diesem Beispiel wird die FileDateTime-Funktion verwendet, um Datum und Zeit der Erstellung oder letzten Änderung einer Datei zu bestimmen. Das Format der angezeigten Datums- und Zeitangaben hängt von den Ländereinstellungen Ihres Systems ab.
Dim Zeitangabe
' TSTDATEI wurde am 12. Februar 1993 um 16:35:47 zuletzt geändert.
' Das Gebietsschema ist Deutschland bzw. deutsch.
Zeitangabe = FileDateTime("TSTDATEI") ' Liefert "12.02.1993 16:35:47".
Ist Wohl die letzte Änderung.
Dann bleibt also die Frage nach der Erstellung der Datei.
Die Hilfe gibt mir da leider keine Hinweise.
Gruß Sonnenpeter
Anzeige
AW: Ups..........
31.12.2005 17:55:41
Reinhard
Hi Peter,
so wie ich die Hilfe zu workbooks.open lese dürfte kein Makro ausgeführt werden.
Trotzdem hängt sich das makro an einer Datei bei mir auf und zeigt mir eine UF o.ä. , kann aber auch ne seltsame Passwortabfrage sein, muss das erst noch ergründen.
Teste es mal bei dir, vielleicht screenupdating=false weglassen, damit du siehst ob zumindest der Anfang stimmt wenn es sich bei dir auch aufhängt.
Kann ach sein dass die Namensüberprüfung auf eigenen Namen noch falsch läuft. uss das erst checken.
Option Explicit
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sub test()
Dim finden, zei, pfad
Application.ScreenUpdating = False
On Error Resume Next ' wenn Sonderzeichen im Dateinamen gibt es ggfs Fehler
Close
Open "c:\test\alle.bat" For Output As #1
Print #1, "dir c:\*.xls /s/b/-p > c:\test\alle.txt"
Close
finden = Shell("c:\test\alle.bat")
'Sleep 1000 'Hier ggfs Wartezeit in Milisekunden angeben wenn viele Dateien
Range("A1:E1") = Split("Pfad Datei Größe Erstellung Änderung")
zei = 1 'Überschriftszeile
Open "c:\test\alle.txt" For Input As #1
With ActiveSheet
While Not EOF(1)
Input #1, pfad
zei = zei + 1
.Cells(zei, 1) = pfad
.Cells(zei, 2) = Mid(pfad, InStrRev(pfad, "\") + 1)
If ThisWorkbook.Name <> Mid(pfad, InStrRev(pfad, "\") + 1) Then
Workbooks.Open Filename:=pfad, updatelinks:=0, ReadOnly:=True
.Cells(zei, 3) = FileLen(pfad)
.Cells(zei, 4) = ActiveWorkbook.BuiltinDocumentProperties(11)
.Cells(zei, 5) = ActiveWorkbook.BuiltinDocumentProperties(12)
Workbooks(Mid(pfad, InStrRev(pfad, "\") + 1)).Close
End If
Wend
End With
Close
Range("A1:D" & zei).Sort Key1:=Range("B2"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Range("A1").Select
Application.ScreenUpdating = True
End Sub

Gruß
Reinhard
ps:Das Forum lebt auch von Rückmeldungen.
Anzeige
AW: Alle xls Dateien auf dem Laufwerk auslesen....
31.12.2005 17:11:24
Reinhard
Hi Peter,
Option Explicit
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sub test()
Dim finden, zei, pfad
On Error Resume Next ' wenn Sonderzeichen im Dateinamen gibt es ggfs Fehler
Close
Open "c:\test\alle.bat" For Output As #1
Print #1, "dir c:\*.xls /s/b/-p > c:\test\alle.txt"
Close
finden = Shell("c:\test\alle.bat")
'Sleep 1000 'Hier ggfs Wartezeit in Milisekunden angeben wenn viele Dateien
Range("A1:D1") = Split("Pfad Datei Größe Datum")
zei = 1 'Überschriftszeile
Open "c:\test\alle.txt" For Input As #1
While Not EOF(1)
Input #1, pfad
zei = zei + 1
Cells(zei, 1) = pfad
Cells(zei, 2) = Mid(pfad, InStrRev(pfad, "\") + 1)
Cells(zei, 3) = FileLen(pfad)
Cells(zei, 4) = FileDateTime(pfad)
Wend
Close
Range("A1:D" & zei).Sort Key1:=Range("B2"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Range("A1").Select
End Sub

Gruß
Reinhard
ps:Das Forum lebt auch von Rückmeldungen.
Anzeige
AW: Alle xls Dateien auf dem Laufwerk auslesen....
31.12.2005 17:43:58
Sonnenpeter
Hallo Reinhard,
das Ganze funtioniert ebenfalls nach meiner Änderung.
Option Explicit
Private Declare

Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Sub test()
Dim finden, zei, pfad
On Error Resume Next ' wenn Sonderzeichen im Dateinamen gibt es ggfs Fehler
Close
Open "c:\" For Output As #1
Print #1, "dir c:\*.xls /s/b/-p > c:\"
Close
finden = Shell("c:\")
'Sleep 1000 'Hier ggfs Wartezeit in Milisekunden angeben wenn viele Dateien
Range("A1:D1") = Split("Pfad Datei Größe Datum")
zei = 1 'Überschriftszeile
Open "c:\alle.txt" For Input As #1
While Not EOF(1)
Input #1, pfad
zei = zei + 1
Cells(zei, 1) = pfad
Cells(zei, 2) = Mid(pfad, InStrRev(pfad, "\") + 1)
Cells(zei, 3) = FileLen(pfad)
Cells(zei, 4) = FileDateTime(pfad)
Wend
Close
Range("A1:D" & zei).Sort Key1:=Range("B2"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Range("A1").Select
End Sub

Leider werden die ä, ö, ü nicht ausgeworfen.
Das Datum der Dateierstellung ist wohl nicht auszuweisen?
Gruß Sonnenpeter
Anzeige
AW: Alle xls Dateien auf dem Laufwerk auslesen....
31.12.2005 17:59:27
Reinhard
Hi Peter,
da ich nie Sonderzeichen wie ä in Dateinamen verwende habe ich nie Probleme.
Die Dos-Variante ist halt viel schneller da systemnäher.
Soweit ich weiss, wenn man /b wegläßt erscheinen auch die Umlaute, allerdings muss man dann anders auslesen, schau dir dann mal die .txt mit dem editor an, dann weißt du was ich meine.
Und zur Erstellung, siehe neuen Code
Gruß
Reinhard
ps:Das Forum lebt auch von Rückmeldungen.
AW: Alle xls Dateien auf dem Laufwerk auslesen....
31.12.2005 18:02:29
Sonnenpeter
Danke nochmal,
ich ändere die Sonderzeichen mit suchen/ersetzen.
Einen guten Rutsch ins neue Jahr
Sonenpeter
fast 100%ige Lösung
31.12.2005 18:42:19
Reinhard
Hallo Peter,
das einzige was noch stört sind Dateien mit Passwörtern, da bräuchte man eine Tabelle mit Dateinamen und Passwörtern aber mehr als heikel so eine Datei zu haben. Naja, vielleicht auf Diskette, Usb-Stick o.ä. Naja, Sstem-Admins und Chefs lieben so Listen :-))
Option Explicit
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sub test()
Dim finden, zei, pfad
Application.ScreenUpdating = False
Application.EnableEvents = False
On Error Resume Next ' wenn Sonderzeichen im Dateinamen gibt es ggfs Fehler
Close
Open "c:\test\alle.bat" For Output As #1
Print #1, "dir c:\*.xls /s/b/-p > c:\test\alle.txt"
Close
finden = Shell("c:\test\alle.bat")
'Sleep 1000 'Hier ggfs Wartezeit in Milisekunden angeben wenn viele Dateien
Range("A1:E1") = Split("Pfad Datei Größe Erstellung Änderung")
zei = 1 'Überschriftszeile
Open "c:\test\alle.txt" For Input As #1
With ActiveSheet
While Not EOF(1)
Input #1, pfad
zei = zei + 1
.Cells(zei, 1) = pfad
.Cells(zei, 2) = Mid(pfad, InStrRev(pfad, "\") + 1)
If ThisWorkbook.Name <> Mid(pfad, InStrRev(pfad, "\") + 1) Then
Workbooks.Open Filename:=pfad, updatelinks:=0, ReadOnly:=True
.Cells(zei, 3) = FileLen(pfad)
.Cells(zei, 4) = ActiveWorkbook.BuiltinDocumentProperties(11)
.Cells(zei, 5) = ActiveWorkbook.BuiltinDocumentProperties(12)
Workbooks(Mid(pfad, InStrRev(pfad, "\") + 1)).Close savechanges:=False
End If
Wend
End With
Close
Range("A1:D" & zei).Sort Key1:=Range("B2"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Range("A1").Select
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub

Gruß
Reinhard
ps:Das Forum lebt auch von Rückmeldungen.

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige