Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1556to1560
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

Dateien in Excel per VBA listen/ Hilfe!

Dateien in Excel per VBA listen/ Hilfe!
15.05.2017 11:59:10
Matthias
Hallo!
Ich benötige Hilfe für folgendes Problem. Ich möchte über VBA Dateien auf einem Laufwerk finden und in einer Liste auflisten. Dazu habe ich bereits ein Beispiel gefunden, was grundsätzlich sehr gut funktioniert. Da ich jedoch über keinerlei VBA-Kenntnisse verfüge, macht mir die letzte Anpassung Probleme.
Zusätzlich möchte ich, das das VBA-Progrämmchen nur die Dateien aufgelistet, deren Dateiname so aussieht: kalk*.xlsm und von einem bestimmten Autor sind, Beispiel: VCH\m.ogzall
Hier ist die vorhandene VBA-Programmierung:
Option Explicit

Public Sub Dateienlisten()
'** Auswahl des auszuwertenden Ordner **
Dim Pfad As String, I As Long
With Application.FileDialog(msoFileDialogFolderPicker)
.InitialFileName = ThisWorkbook.Path
.Title = "Ordnerauswahl"
.ButtonName = "Auswahl..."
.InitialView = msoFileDialogViewList
If .Show = -1 Then
Pfad = .SelectedItems(1)
Else
Exit Sub
End If
End With
'** Tabelle vorbereiten **
Cells.ClearContents
[A1].Select
[A1:F1] = Array("No.", "Path", "Filename", "Date", "Link", "Author")
[A1:F1].Font.Bold = True
'[C:C].WrapText = True
'[C:C].ColumnWidth = 20
[D:D].NumberFormat = "yyyy.mm.dd"
'[D:D].ColumnWidth = 10
[A1:F1].Interior.ColorIndex = 8
'** Sub list_files aufrufen , Spaltenbreite anpassen **
Call list_files([A2:F2], CreateObject("Scripting" & _
".FileSystemObject").GetFolder(Pfad))
[A:E].EntireColumn.AutoFit
'** Dateien nach Unterordner/Dateiname sortieren **
Range("A1").Sort _
Key1:=Range("B2"), Order1:=xlAscending, _
Key2:=Range("C2"), Order2:=xlAscending, _
Header:=xlYes
For I = 2 To Range("B" & Rows.Count).End(xlUp).Row
'Nummerieren
Range("A" & I) = I - 1
'Hyperlink hinzufügen
ActiveSheet.Hyperlinks.Add _
Anchor:=Range("E" & I), _
Address:=Range("B" & I) & IIf(Len(Range("B" & I)) > 0, "\" & _
"", "") & Range("C" & I), TextToDisplay:="Link"
Next
End Sub

'*****************************************
'** Dateien listen **
'*****************************************
Sub list_files(r As Range, ordner As Variant)
Dim file As Variant
Dim subordner As Variant
Dim wb As Workbook
Dim objShell, objFolder, objFile As Object
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace(CStr(ordner))
On Error GoTo ende
Application.ScreenUpdating = False
For Each file In ordner.Files
Set objFile = objFolder.ParseName(CStr(file.Name))
r(2) = Replace(ordner.Path, ThisWorkbook.Path & "\", "")
r(3) = file.Name
r(4) = DateValue(file.DateLastModified)
r(6) = objFolder.GetDetailsOf(objFile, 14)
r(6) = objFolder.GetDetailsOf(objFile, 10)
Set r = r.Offset(1)
Next
For Each subordner In ordner.SubFolders
If (subordner.Attributes And 4) = 0 Then '/System-Ordner/
Call list_files(r, subordner)
End If
Next
Range("A1").Select
ende:
Application.ScreenUpdating = True
End Sub
Über Eure Hilfe wäre ich sehr dankbar!
Matthias

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Doppelt, AW siehe oben... owT
17.05.2017 11:27:02
Michael
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige