Excel Dateien aus Ordner anzeigen lassen
Hallo zusammen,
leider habe ich auch durch die google Suche nichts passendes gefunden.
Ich möchte alle Exceldateien inklusive Unterordnern in eine Exceldatei mit Pfad und Name abspeichern lassen.
Hat dafür jemand ein passenden VBA Script?
leider habe ich auch durch die google Suche nichts passendes gefunden.
Ich möchte alle Exceldateien inklusive Unterordnern in eine Exceldatei mit Pfad und Name abspeichern lassen.
Hat dafür jemand ein passenden VBA Script?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 71222426787
Url: https://administrator.de/contentid/71222426787
Ausgedruckt am: 25.11.2024 um 08:11 Uhr
13 Kommentare
Neuester Kommentar
Hi.
Gruß Katrin
leider habe ich auch durch die google Suche nichts passendes gefunden.
Wieso so weit weg schweifen, liegt doch alles hier.Hat dafür jemand ein passenden VBA Script?
- Excel Makro, VBA soll Pfad auslesen Ordner inkl. Unterordner die vorliegenden Excel Dateien öffnen und 2 bestimmt Zellen in eine neue Excel untereinander schreiben
- Dateisuche nach Datentypen (mit Unterordner)
Dim fso As Object
Sub ImportData()
Dim col As New Collection, file As Variant, wb As Workbook, intRow As Long
'Ordner der die Dateien enthält
Const FOLDER = "C:\MeineDateien"
'Filesystemobject
Set fso = CreateObject("Scripting.FileSystemObject")
'alle Excel-Dateien rekursiv listen
getAllFiles fso.GetFolder(FOLDER), True, Array("xlsx", "xls"), col
'Screenupdates und eventuelle Dialoge für Batchbetrieb unterdrücken
Application.ScreenUpdating = False
With Sheets(1)
.UsedRange.Clear
' Header schreiben
.Range("A1:C1").Value = Array("Ordner", "Dateiname", "Erstelldatum")
' Startzeile
intRow = 2
' Dateinamen untereinander in Spalte A schreiben
For Each file In col
.Cells(intRow,"A").Resize(1,3).Value = file
' Hyperlink einfügen
.Hyperlinks.Add Anchor:=.Cells(intRow, "B"), Address:=(file(0) & file(1))
intRow = intRow + 1
Next
End With
'Screenupdates und Dialoge wieder einschalten
Application.ScreenUpdating = True
End Sub
Sub getAllFiles(ByVal fldr As Object, boolRecursion As Boolean, arrFileExtensions As Variant, ByRef col As Collection)
For Each file In fldr.Files
For i = 0 To UBound(arrFileExtensions)
If LCase(arrFileExtensions(i)) = LCase(fso.GetExtensionName(file.Path)) Then
col.Add Array(file.ParentFolder, file.Name, file.DateCreated)
Exit For
End If
Next
Next
If boolRecursion Then
For Each subFolder In fldr.SubFolders
getAllFiles subFolder, True, arrFileExtensions, col
Next
End If
End Sub
Siehe oben, da wird das schon gemacht Zeile 9 Array der Extensions definiert und Zeile 29 die Extension der Datei geprüft.
Ist doch schon komplett.
Aber mein abgeändertes oben :-P. Ist doch alles schön mit Kommentaren versehen, schon wieder Freitag 🙈?!
Aber bei deinem Script hat man keine Verklinkung drin.
Pillepalle mit Hyperlink, ist hinzugefügt.War ja klar Copy n Paster ...
' ...
' ..
For Each Datei In fso.GetFolder(Pfad).Files
dim ext as string
ext = LCase(fso.GetExtensionName(Datei.Name))
if ext = "xlsx" or ext = "xls" then
'Letzte Zeile herausfinden
LetzteZeile = Cells(Rows.Count, 1).End(xlUp).Row + 1
'Ergebnisse ins Tabellenblatt schreiben
ActiveSheet.Hyperlinks.Add anchor:=Cells(LetzteZeile, 1), Address:=Datei.Path, TextToDisplay:=Datei.Name
Cells(LetzteZeile, 2).Value = Datei.ParentFolder
Cells(LetzteZeile, 3).Value = Datei.DateCreated
End if
Next Datei
' ...
🖖
Klappt hier einwandfrei ...