Clever-Excel-Forum

Normale Version: Dateinamen in Excel Tabellen auflisten
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo,

vielleicht kann mir von Euch jemand helfen, folgende Aufgabe zu bearbeiten. Ich würde gerne automatisch (per Makro) die Dateinamen, Änderungsdatum und Dateigröße, welche im Windows Explorer beim Zugriff auf den jeweiligen Ordner aufgelistet werden, unter Angabe des jeweiligen Quellordners in Tabellen in Excel übernehmen (z.B. in die Spalten A bis C von Zeile 1 abwärts).
Hallo,

ich habe einen passenden Code gefunden (siehe unten). Folgende Fragen hätte ich dazu:

Wie kann man in diesem Code die Auswahl des Ordners per Inputbox integrieren (dzt. muss der Ordner fix im Code angegeben werden)? 
Wie kann man in diesem Code die Spalte, in die die Werte ausgegeben werden sollen, fix integrieren (z.B. Spalte B ab Zeile 1)?

Sub Ordner_Auslesen()

Dim fs As Object
Dim fVerz As Object
Dim fDatei As Object
Dim fdateien As Object
Dim strDat As String
Dim Zeile As Integer

Set fs = CreateObject("scripting.FileSystemObject")
Set fVerz = fs.GetFolder("C:\Test")
Set fdateien = fVerz.Files

For Each fDatei In fdateien
    If InStr(fDatei, "") > 0 Then
        Zeile = Zeile + 1
        Cells(Zeile, 1) = fDatei.Name
    End If
Next fDatei

End Sub
Hi,

versuchs mal so:


Code:
Sub Ordner_Auslesen()

Dim fs As Object
Dim fVerz As Object
Dim fDatei As Object
Dim fdateien As Object
Dim strDat As String
Dim Zeile As Integer
Dim folder As String

Set fs = CreateObject("scripting.FileSystemObject")
folder = Application.InputBox("folder")
Set fVerz = fs.GetFolder(folder)
Set fdateien = fVerz.Files

For Each fDatei In fdateien
    If InStr(fDatei, "") > 0 Then
        Zeile = Zeile + 1
        Cells(Zeile, 2) = fDatei.Name  '2= Spalte B
    End If
Next fDatei

End Sub

Wobei die Lösung mit Inputbox natürlich fehleranfällig ist falls du da was falsches schreibst.
Hi

"noch en Gedicht"     (Heinz Ehrhardt)


statt Cells(Zeile, 2) kannst du auch Cells(Zeile, "B") angeben. Dann siehst du direkt welche Spalte gemeint ist.

Codes zum Ordner auslesen gibt es hunderte, in allen Varianten. Mit und ohne Unter Ordner.
Hier mal ein Minimal Code den ich fand und den ich um File-Len + Datum erweitert habe.
Anstatt -InputBox- steht bei mir der Pfad + Ordnername in der Zelle C1 

'Die Minimalvariante um Datein eines Ordners zu lesen ist:
Sub myDir()
   Range("A1:C100") = Empty
   sPfad = ThisWorkbook.Path
      sPfad = "c:\tmp"   'oder
'      sPfad = Range("C1")
      temp = Dir(sPfad & "\*.*")
      Do While temp <> ""
      i = i + 1
      Cells(i, 1) = temp
      Cells(i, 2) = FileLen(sPfad & "\" & temp)
      Cells(i, 3) = FileDateTime(sPfad & "\" & temp)
      temp = Dir
      Loop
End Sub
Hallo,

danke Euch für die Vorschläge. Zur Auswahl des Ordners wäre statt der Input Box ideal wenn der Windows Explorer bei Makro Ausführung öffnen würde und die Datei direkt im Explorer ausgewählt werden könnte. Weiters wäre gut die Spalten (z.B. D/E/F) im Code festzulegen, welche jeweils an die aktuelle Situation angepasst werden könnten.
Hallo,

wie wäre es möglich den betroffenen Ordner zum Auslesen der Namen im Windows Explorer auszuwählen, ev. anhand von "With Application.FileDialog"? Wie würde dann z.B. der vorher angegebene optimierte Code von Gast123 aussehen?
Hallöchen,

vorhin hatte ich das in einem anderen Thread zur Dateiauswahl, hier nun das Beispiel zur Ordnerwahl:
Sub OrdnerWahl()
With Application.FileDialog(msoFileDialogFolderPicker)
   .InitialFileName = "G:\"
   .Title = "Ordnerauswahl"
   .ButtonName = "Übernehmen"
   .InitialView = msoFileDialogViewList
   If .Show = -1 Then
       strordner = .SelectedItems(1)
   End If
End With
MsgBox "Gewählter Ordner: " & strordner
End Sub
Hallo Andre,

vielen Dank für Deine Info. Wie kann man den Ordner der mit "OrdnerWahl" ausgewählt wird im Code von Gast 123 (siehe Beitrag vorher) aufrufen?
Hallöchen,

das könnte man direkt in einem Makro verarbeiten oder auch so:

Modul Modul1
Sub OrdnerWahl() 
'MIt dem Ordnerauswahldialog aufrufen 
With Application.FileDialog(msoFileDialogFolderPicker) 
   'Startlaufwerk und Verzeichnis 
   .InitialFileName = "G:\" 
   'Dialogtitel 
   .Title = "Ordnerauswahl" 
   'Beschriftung des Buttons zum ausfuehren 
   .ButtonName = "Übernehmen" 
   'Anzeigeeinstellung 
   .InitialView = msoFileDialogViewList 
   'Wenn Auswahl erfolgt ist, dann 
   If .Show = -1 Then 
       'Ordnernamen übernehmen 
       myDir .SelectedItems(1) 
   'Ende Wenn Auswahl erfolgt ist, dann 
   End If 
'Ende Mit dem Ordnerauswahldialog aufrufen 
End With 
End Sub 
 
Sub myDir(ByVal sPfad As String) 
'Variablendeklaration 
'String, Integer 
Dim temp$, iCnt% 
'Bereich A1:C100 leeren 
Range("A1:C100") = Empty 
'ersten Dir-Eintrag abrufen 
temp = Dir(sPfad & "\*.*") 
'Schleife solange der Dir-Eintrag etwas enthaelt 
Do While temp <> "" 
  'Zeilenzaehler hochsetzen 
  iCnt = iCnt + 1 
  'Dateinamen in Spalte A = 1 uebernehmen 
  Cells(iCnt, 1) = temp 
  'Dateigroesse in Spalte B = 2 uebernehmen 
  Cells(iCnt, 2) = FileLen(sPfad & "\" & temp) 
  'Dateizeit in Spalte C = 3 uebernehmen 
  Cells(iCnt, 3) = FileDateTime(sPfad & "\" & temp) 
  'naechsten Dir-Eintrag abrufen 
  temp = Dir 
'Ende Schleife solange der Dir-Eintrag etwas enthaelt 
Loop 
End Sub 

Hallo Andre,

vielen Dank für Deine Info, der Code funktioniert optimal!
Seiten: 1 2