Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1468to1472
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 auslesen in Tabelle

Dateien auslesen in Tabelle
17.01.2016 20:49:02
MaBlu
Hallo
ich bin auf der Suche nach einem VBA Code der mir auflistet was in einem Ordner (mit Unterordner) ist und das mit Hyperlink in eine Tabelle gibt. Ich habe bereits Google bemüht aber nicht gefunden was wircklich geht mit Excel 2013?
Nun meine Frage habt ihr villeicht sowas schon bearbeitet?
Meine Wunschvorstellung:
Verzeichnis:
daten, anzahl, grösse, link
Unterverzeichnis:
daten, anzahl, grösse, link etc.
Für eure Hilfe im Voraus besten Dank.
MaBlu

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
doppelt oT
17.01.2016 20:53:53
KlausF

AW: Dateien auslesen in Tabelle
17.01.2016 21:20:01
Matthias
Hallo hier mal ein Codebeispiel, mit dem du rekursiv die Ordner durchgehen kannst. In dem Beispiel werden alle Dateien übernommen (Pfad + Dateiname) und in einem Datenfeld zwischengespeichert. Damit könntest du dir dann die Dateien in eine Liste eintragen und dann ggf. Filtern (Pfad ist ja dabei - wäre dann nur noch eine Stringbearbeitung). Man könnte den Code natürlich auch umschreiben und sich das gleich anders abspeichern, gleich eintragen lassen. Da ist dann nur die Frage, was soll verlinkt werden (jede Datei oder Ordner) und wie weit runter soll es gehen?
Schaue dir mal den Code an, vllt. hilft dir das ja weiter.
Viele Grüße

Dim dateien()
Option Explicit
Sub DateienLesen()
Dim DateiName As String
Dim quelle As String
Dim i As Long
Dim Dateialt As String
Dim Namekurz As String
Dim suche As Variant
Application.ScreenUpdating = False
Dateialt = ThisWorkbook.Name
ReDim dateien(0)
dateien(0) = 0
quelle = "    " 'Pfad eintragen
If Right(quelle, 1) = "\" Then quelle = Left(quelle, Len(quelle) - 1)
If Dir(quelle & "\") = "" Then
MsgBox "Der Pfad wurde nicht gefunden!"
End
End If
Call txtsuchen(quelle)
If dateien(0) = 0 Then
MsgBox "Keine Dateien gefunden!"
Else
'Daten auslesen
For i = 1 To dateien(0)
DateiName = dateien(i) 'Pfad und Name
Namekurz = Right(DateiName, InStr(1, StrReverse(DateiName), "\") - 1)
Next i
End If
Application.ScreenUpdating = True
End Sub
Function txtsuchen(quelle As String)
Dim suche
Dim ordner()
Dim i As Long
ReDim ordner(0)
ordner(0) = 0
ChDrive (Left(quelle & "\", 3))
ChDir (quelle)
'Ordner durchschauen
suche = Dir(quelle & "\*.*", vbDirectory)
Do Until suche = ""
'Normale Dateien rausfiltern
If (GetAttr(quelle & "\" & suche) = 16) Then
'die hier ankommen, sind Ordner, extra speichern
ordner(0) = ordner(0) + 1
ReDim Preserve ordner(ordner(0))
ordner(ordner(0)) = suche
Else
dateien(0) = dateien(0) + 1
ReDim Preserve dateien(dateien(0))
dateien(dateien(0)) = quelle & "\" & suche
End If
suche = Dir()
Loop
'jetzt durch die Ordner gehen
For i = 1 To UBound(ordner)
If Dir(ordner(i), vbNormal) = "" And Left(ordner(i), 1)  "." Then
Call txtsuchen(quelle & "\" & ordner(i))
ChDir (quelle)
End If
Next
End Function

Anzeige
AW: Dateien auslesen in Tabelle
17.01.2016 23:43:34
MaBlu
Hallo
ich habe den Code eingefügt und den pfad angegeben aber es passiert nichts?
Ich möchte jeden ordner und jeden link eingetragen haben wenn das geht?
Gruss MaBlu

AW: Dateien auslesen in Tabelle
18.01.2016 00:15:10
Sepp
Hallo MaBlu,
eine einfache Variante, die Ordner werden auf dem aktiven Tabellenblatt aufgelistet.
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Private objFSO As Object
Private objFolder As Object
Private objSubFolder As Object
Private objF As Object
Private lngIndex As Long

Sub OrdnerAuflisten()
Dim strPath As String

With Application.FileDialog(msoFileDialogFolderPicker)
  .InitialFileName = "C:\"
  .Title = "Ordnerauflisten - Ordnerauswahl"
  .ButtonName = "Start..."
  .InitialView = msoFileDialogViewList
  If .Show = -1 Then
    strPath = .SelectedItems(1)
    If Right(strPath, 1) <> "\" Then strPath = strPath & "\"
  End If
End With

If Len(strPath) Then
  Set objFSO = CreateObject("Scripting.FileSystemObject")
  
  lngIndex = 1
  
  Range("A:D").Clear
  Range("A1:D1") = Array("Ordnername", "Größe", "Unterordner", "Dateien")
  Range("A1:D1").Font.Bold = True
  Range("A:A").NumberFormat = "@"
  Range("B:B").NumberFormat = "#,##0.00 ""KB"""
  Call GetSubFolders(strPath)
  Range("A:D").Columns.AutoFit
End If

Set objFSO = Nothing
End Sub

Private Sub GetSubFolders(pfad)

Set objFolder = objFSO.GetFolder(pfad)
Set objSubFolder = objFolder.Subfolders

On Error Resume Next

For Each objF In objSubFolder
  With objF
    lngIndex = lngIndex + 1
    ActiveSheet.Hyperlinks.Add Anchor:=Cells(lngIndex, 1), _
      Address:=.Path, TextToDisplay:=.Path
    Cells(lngIndex, 2) = .Size / 1024
    Cells(lngIndex, 3) = .Subfolders.Count
    Cells(lngIndex, 4) = .Files.Count
    GetSubFolders .Path
  End With
Next

End Sub

Gruß Sepp

Anzeige
AW: Dateien auslesen in Tabelle
18.01.2016 20:41:17
MaBlu
Das wars was ich Suchte!
Besten Dank an Sepp

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige