Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
688to692
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
688to692
688to692
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Dateinamen in Liste einfügen

Dateinamen in Liste einfügen
04.11.2005 14:12:31
andre
Hallo,
ich habe folgendes Problem. In einem Ordner liegen mehrere Excel Dateien, die Namen der Dateien sollen in Spalte A einer anderen Excel-Datei, das Datum der Speicherung in Spalte B. Die Excelliste mit dem Namen und Datum soll bei jedem aufstarten den Ordner kontrollieren und neue Dateien mit aufnehmen in die Liste. Um einen schnellen Lösungsansatz wäre ich sehr dankbar.
Gruß
Andre

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Dateinamen in Liste einfügen
04.11.2005 14:56:10
Marc
Hallo Andre
dachtest du so etwa?
Probier mal aus...
Gruß Marc

Sub DateiEigenschaften()
'Trägt die Dateieigenschaften aller Dateien eines Verzeichnises
'mit Unterverzeichnissen in die aktuelle Tabelle ein!
'Die Tabelle wird vorher gelöscht (Inhalt)!
Dim fSearch As FileSearch
Dim wkb As Workbook, actSht As Worksheet
Dim strPath As String
Dim iCnt As Integer, n As Integer
Dim lRow As Long
On Error GoTo ERRORHANDLER
With Application
.ScreenUpdating = False
.EnableEvents = False
.DisplayAlerts = False
.Calculation = xlCalculationManual
End With
strPath = InputBox("Aus welchem Ordner?", Default:="C:\")
lRow = 1
Set actSht = ActiveSheet
With actSht
.Cells.ClearContents
.Cells.ClearFormats
End With
Set fSearch = Application.FileSearch
With fSearch
.NewSearch
.LookIn = strPath
.SearchSubFolders = True  '<<<<Unterordner durchsuchen True=ja/False=nein
.FileType = msoFileTypeExcelWorkbooks 'msoFileTypeAllFiles
.Execute
For iCnt = 1 To .FoundFiles.Count
Set wkb = Workbooks.Open(.FoundFiles(iCnt))
actSht.Cells(lRow, 1) = wkb.FullName
actSht.Cells(lRow, 1).Font.Bold = True
lRow = lRow + 1
With wkb
n = 12
'For n = 1 To wkb.BuiltinDocumentProperties.Count 'für alle Eigenschaften
On Error Resume Next
actSht.Cells(lRow, 1).Value = _
wkb.BuiltinDocumentProperties(n).Name
actSht.Cells(lRow, 2).Value = _
wkb.BuiltinDocumentProperties(n)
If InStr(1, wkb.BuiltinDocumentProperties(n).Name, "date") Or _
InStr(1, wkb.BuiltinDocumentProperties(n).Name, "time") And _
wkb.BuiltinDocumentProperties(n) <> 0 Then
actSht.Cells(lRow, 2).NumberFormat = "dd.mm.yyyy hh:mm:ss"
End If
If Err > 0 Then
Err.Clear
actSht.Cells(lRow, 2).Value = "k.A."
End If
On Error GoTo ERRORHANDLER
lRow = lRow + 1
'Next 'wenn For n
wkb.Close , False
End With
lRow = lRow + 1
Next
End With
actSht.Columns.AutoFit
actSht.Columns("A:B").HorizontalAlignment = xlLeft
ERRORHANDLER:
With Application
.ScreenUpdating = True
.EnableEvents = True
.DisplayAlerts = True
.Calculation = xlCalculationAutomatic
End With
End Sub

Anzeige
AW: Dateinamen in Liste einfügen
04.11.2005 15:32:22
andré
Erstmal vielen Dank Marc, grundsätzlich kommt es dem schon sehr nah, was ich dachte. Nur schreibt er mir momentan den ganzen Pfad. vielleicht läßt sich mein Problem mit einem Beispiel leichter beschreiben.
Die Datei liegt in dem Ordner XY, mit dem Namen Beispiel.xls. Der Ordner XY liegt auf Laufwerk G:\überordner\ordner\Ordner OV .
Nun soll in der ersten Spalte nur der Name 'Beispiel' erscheinen un in Spalte B nur '01.11.05' als Datum des letzten Speicherns erscheinen. Leider habe ich keine Ahnung von VBA, sodaß ich selber nicht daran basteln kann.
Über weitere Hilfe wäre ich Dankbar.
Dank an Marc und Gruß
André
Anzeige
AW: Dateinamen in Liste einfügen
04.11.2005 15:45:41
Marc
Dann so...
Gruß Marc

Sub DateiEigenschaften()
'Trägt die Dateieigenschaften aller Dateien eines Verzeichnises
'mit Unterverzeichnissen in die aktuelle Tabelle ein!
'Die Tabelle wird vorher gelöscht (Inhalt)!
Dim fSearch As FileSearch
Dim wkb As Workbook, actSht As Worksheet
Dim strPath As String
Dim iCnt As Integer, n As Integer
Dim lRow As Long
On Error GoTo ERRORHANDLER
With Application
.ScreenUpdating = False
.EnableEvents = False
.DisplayAlerts = False
.Calculation = xlCalculationManual
End With
strPath = InputBox("Aus welchem Ordner?", Default:="C:\")
lRow = 1
Set actSht = ActiveSheet
With actSht
.Cells.ClearContents
.Cells.ClearFormats
End With
Set fSearch = Application.FileSearch
With fSearch
.NewSearch
.LookIn = strPath
.SearchSubFolders = True  '<<<<Unterordner durchsuchen True=ja/False=nein
.FileType = msoFileTypeExcelWorkbooks 'msoFileTypeAllFiles
.Execute
For iCnt = 1 To .FoundFiles.Count
Set wkb = Workbooks.Open(.FoundFiles(iCnt))
actSht.Cells(lRow, 1) = wkb.Name
actSht.Cells(lRow, 1).Font.Bold = True
'lRow = lRow + 1
With wkb
n = 12
'For n = 1 To wkb.BuiltinDocumentProperties.Count 'für alle Eigenschaften
On Error Resume Next
'actSht.Cells(lRow, 1).Value = _
'wkb.BuiltinDocumentProperties(n).Name
actSht.Cells(lRow, 2).Value = _
wkb.BuiltinDocumentProperties(n)
If InStr(1, wkb.BuiltinDocumentProperties(n).Name, "date") Or _
InStr(1, wkb.BuiltinDocumentProperties(n).Name, "time") And _
wkb.BuiltinDocumentProperties(n) <> 0 Then
actSht.Cells(lRow, 2).NumberFormat = "dd.mm.yyyy hh:mm:ss"
End If
If Err > 0 Then
Err.Clear
actSht.Cells(lRow, 2).Value = "k.A."
End If
On Error GoTo ERRORHANDLER
lRow = lRow + 1
'Next 'wenn For n
wkb.Close , False
End With
lRow = lRow + 1
Next
End With
actSht.Columns.AutoFit
actSht.Columns("A:B").HorizontalAlignment = xlLeft
ERRORHANDLER:
With Application
.ScreenUpdating = True
.EnableEvents = True
.DisplayAlerts = True
.Calculation = xlCalculationAutomatic
End With
End Sub

Anzeige
AW: Dateinamen in Liste einfügen
04.11.2005 16:10:26
andré
Danke Marc schon ganz nah dran. Gibt es eine Möglichkeit,das ich die Endung '.xls' nicht mehr angezeigt bekomme?
Trotzdem noch einmal vielen Dank für die Hilfe.
Gruß
André
AW: Dateinamen in Liste einfügen
04.11.2005 16:27:12
Marc
Ja gute Frage, da das eine Abfrage nach Dateien eines Pfades ist wüsste ich jetzt
auf die Schnelle nicht genau wie.
Geht aber anders ganz schnell. Makiere die Spalte A komplett (Klick auf A) und dann
gehe auf Bearbeiten, Ersetzen (Strg+H). Da gieb bei Suchen .xls ein und bei Ersetzen nicht nichts. Klick auf Alle Ersetzen, schon fertig...
Gruß Marc
AW: Dateinamen in Liste einfügen
07.11.2005 09:23:02
andré
Danke Marc für die Lösung! Ich dachte, daß es zum Ersten auch in Excel ohne VBA ginge, und zum Zweiten sollte es kommplett nach dem Start automatisiert sein. Vielleicht hat ja noch jemand eine Lösung
Anzeige
AW: Dateinamen in Liste einfügen
07.11.2005 09:48:54
Marc
Hallo Andre,
damit alles schön automatisiert ist:

Sub DateiEigenschaften()
'Trägt die Dateieigenschaften aller Dateien eines Verzeichnises
'mit Unterverzeichnissen in die aktuelle Tabelle ein!
'Die Tabelle wird vorher gelöscht (Inhalt)!
Dim fSearch As FileSearch
Dim wkb As Workbook, actSht As Worksheet
Dim strPath As String
Dim iCnt As Integer, n As Integer
Dim lRow As Long
On Error GoTo ERRORHANDLER
With Application
.ScreenUpdating = False
.EnableEvents = False
.DisplayAlerts = False
.Calculation = xlCalculationManual
End With
strPath = InputBox("Aus welchem Ordner?", Default:="C:\")
lRow = 1
Set actSht = ActiveSheet
With actSht
.Cells.ClearContents
.Cells.ClearFormats
End With
Set fSearch = Application.FileSearch
With fSearch
.NewSearch
.LookIn = strPath
.SearchSubFolders = True  '<<<<Unterordner durchsuchen True=ja/False=nein
.FileType = msoFileTypeExcelWorkbooks 'msoFileTypeAllFiles
.Execute
For iCnt = 1 To .FoundFiles.Count
Set wkb = Workbooks.Open(.FoundFiles(iCnt))
actSht.Cells(lRow, 1) = wkb.Name
actSht.Cells(lRow, 1).Font.Bold = True
'lRow = lRow + 1
With wkb
n = 12
'For n = 1 To wkb.BuiltinDocumentProperties.Count 'für alle Eigenschaften
On Error Resume Next
'actSht.Cells(lRow, 1).Value = _
'wkb.BuiltinDocumentProperties(n).Name
actSht.Cells(lRow, 2).Value = _
wkb.BuiltinDocumentProperties(n)
If InStr(1, wkb.BuiltinDocumentProperties(n).Name, "date") Or _
InStr(1, wkb.BuiltinDocumentProperties(n).Name, "time") And _
wkb.BuiltinDocumentProperties(n) <> 0 Then
actSht.Cells(lRow, 2).NumberFormat = "dd.mm.yyyy hh:mm:ss"
End If
If Err > 0 Then
Err.Clear
actSht.Cells(lRow, 2).Value = "k.A."
End If
On Error GoTo ERRORHANDLER
lRow = lRow + 1
'Next 'wenn For n
wkb.Close , False
End With
lRow = lRow + 1
Next
End With
Columns("A:A").Replace What:=".xls", Replacement:=""
actSht.Columns.AutoFit
actSht.Columns("A:B").HorizontalAlignment = xlLeft
ERRORHANDLER:
With Application
.ScreenUpdating = True
.EnableEvents = True
.DisplayAlerts = True
.Calculation = xlCalculationAutomatic
End With
End Sub

Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige