Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Treeview Ordner und Dateien

Forumthread: Treeview Ordner und Dateien

Treeview Ordner und Dateien
16.11.2006 16:55:07
Cold
hallo miteinander!
brauche hilfe (verständnisproblem). das auslesen der ordner klappt ja super. ein lob der suche im forum. nur weiß ich nicht weiter wie man in den ordnern die dateien ausliest und diese dann mit
Treeview1.Nodes.Add(relative:=name1, _
relationship:=tvwChild, _
Text:=wks.name)
ndeSecond.Sorted = True
hinzufügt.
hier der code aus der VBhilfe mit dem ich die ordner auslese

Sub test()
Pfad1 = ThisWorkbook.Path & "\"     ' Pfad setzen.
name1 = Dir(Pfad1, vbDirectory)    ' Ersten Eintrag abrufen.
Do While name1 <> ""    ' Schleife beginnen.
' Aktuelles und übergeordnetes Verzeichnis ignorieren.
If name1 <> "." And name1 <> ".." Then
' Mit bit-weisem Vergleich sicherstellen, daß Name1 ein
' Verzeichnis ist.
If (GetAttr(Pfad1 & name1) And vbDirectory) = vbDirectory Then
' MsgBox name1    ' Eintrag nur anzeigen, wenn es sich
With Userform1.TreeView1.Nodes.Add(Text:=name1)
End With
End If    ' um ein Verzeichnis handelt.
End If
name1 = Dir    ' Nächsten Eintrag abrufen.
Loop
End Sub

hoffe ich hab mich klar ausgedrückt.
gruß TC
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Treeview Ordner und Dateien
17.11.2006 01:28:23
Nepumuk
Hallo TC,
sei mir nicht böse, aber du versuchst dir Stiefel anzuziehen, welche ein paar Nummern zu groß für dich sind. Denn an deinem rudimentären Code sehe ich schon, dass du das Prinzip nicht begriffen hast. Also, lerne erst mal laufen, bevor du dich an das Steuer eines Ferraris setzt.
Gruß
Nepumuk
Anzeige
AW: Treeview Ordner und Dateien
Cold
sehr hilfreich nepumuk!!!!!
ich hab das prinzip nicht verstanden. welches? hilf mir mal auf die sprünge!!
ich will keine fertige lösung sondern hinweise!!!
sei mir nicht böse aber wie soll ich denn sonst in die "stiefel" wachsen!
also werd ruhig konkret und sag was daran falsch sei.
gruß TC
Anzeige
AW: Treeview Ordner und Dateien
18.11.2006 14:38:55
Nepumuk
Hallo TC,
wenn du meinst, dass dir die Gebrauchsanweisung für eine Saturn V - Rakete hilft, dein Dreirad zu verstehen, bitte: (Ich benutze aber in dem Zusammenhang Dir nicht, da es 1. langsamer und 2. bezüglich Unterordner schwieriger zu handhaben ist.)
Option Explicit
Option Private Module

Public Sub prcFillTreeview(ByVal objTreeview As TreeView)
    Dim objFileSystem As Object, objFolder As Object
    Set objFileSystem = CreateObject("Scripting.FileSystemObject")
    Set objFolder = objFileSystem.GetFolder(ThisWorkbook.Path)
    objTreeview.Nodes.Add Relationship:=1, Key:=objFolder.Path, _
        Text:=objFolder.Name
    Call prcFindSubFolder(objTreeview, objFolder.Path)
    Call prcFindFiles(objTreeview, objFolder.Path)
End Sub

Private Sub prcFindSubFolder(ByVal objTreeview As TreeView, ByVal strFolderPath As String)
    Dim objFileSystem As Object, objFolders As Object, objFolder As Object
    Set objFileSystem = CreateObject("Scripting.FileSystemObject")
    Set objFolders = objFileSystem.GetFolder(strFolderPath)
    For Each objFolder In objFolders.SubFolders
        objTreeview.Nodes.Add Relative:=strFolderPath, Relationship:=4, _
            Key:=strFolderPath & "\" & objFolder.Name, Text:=objFolder.Name
        Call prcFindSubFolder(objTreeview, objFolder.Path)
        Call prcFindFiles(objTreeview, objFolder.Path)
    Next
End Sub

Private Sub prcFindFiles(ByVal objTreeview As TreeView, ByVal strFolderPath As String)
    Dim objFileSystem As Object, objFolder As Object, objFile As Object
    Set objFileSystem = CreateObject("Scripting.FileSystemObject")
    Set objFolder = objFileSystem.GetFolder(strFolderPath)
    For Each objFile In objFolder.Files
        objTreeview.Nodes.Add Relative:=strFolderPath, Relationship:=4, _
            Key:=strFolderPath & "\" & objFile.Name, Text:=objFile.Name
    Next
End Sub

Gruß
Nepumuk
Anzeige
AW: Treeview Ordner und Dateien
20.11.2006 11:31:10
Cold
vielen dank nepumuk!!!
hab den code getestet und funktioniert super.
Da ich ehrlich gesagt wohl zu wenig ahnung habe muss ich nun den code nur verstehen lernen.
Danke für deine bemühungen und hilfe.
gruß TC
;
Anzeige

Infobox / Tutorial

Treeview für Ordner und Dateien in Excel erstellen


Schritt-für-Schritt-Anleitung

Um ein Treeview in Excel zu erstellen, das Ordner und Dateien anzeigt, kannst du VBA verwenden. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Öffne den VBA-Editor:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein UserForm hinzu:

    • Klicke mit der rechten Maustaste auf "VBAProject (DeineDatei.xlsx)".
    • Wähle Einfügen > UserForm.
  3. Füge ein TreeView-Control hinzu:

    • Wähle im Toolbox-Fenster das TreeView-Control aus und ziehe es auf das UserForm.
  4. Füge den folgenden VBA-Code ein:

Option Explicit

Public Sub prcFillTreeview(ByVal objTreeview As TreeView)
    Dim objFileSystem As Object, objFolder As Object
    Set objFileSystem = CreateObject("Scripting.FileSystemObject")
    Set objFolder = objFileSystem.GetFolder(ThisWorkbook.Path)
    objTreeview.Nodes.Add Relationship:=1, Key:=objFolder.Path, _
        Text:=objFolder.Name
    Call prcFindSubFolder(objTreeview, objFolder.Path)
    Call prcFindFiles(objTreeview, objFolder.Path)
End Sub

Private Sub prcFindSubFolder(ByVal objTreeview As TreeView, ByVal strFolderPath As String)
    Dim objFileSystem As Object, objFolders As Object, objFolder As Object
    Set objFileSystem = CreateObject("Scripting.FileSystemObject")
    Set objFolders = objFileSystem.GetFolder(strFolderPath)
    For Each objFolder In objFolders.SubFolders
        objTreeview.Nodes.Add Relative:=strFolderPath, Relationship:=4, _
            Key:=strFolderPath & "\" & objFolder.Name, Text:=objFolder.Name
        Call prcFindSubFolder(objTreeview, objFolder.Path)
        Call prcFindFiles(objTreeview, objFolder.Path)
    Next
End Sub

Private Sub prcFindFiles(ByVal objTreeview As TreeView, ByVal strFolderPath As String)
    Dim objFileSystem As Object, objFolder As Object, objFile As Object
    Set objFileSystem = CreateObject("Scripting.FileSystemObject")
    Set objFolder = objFileSystem.GetFolder(strFolderPath)
    For Each objFile In objFolder.Files
        objTreeview.Nodes.Add Relative:=strFolderPath, Relationship:=4, _
            Key:=strFolderPath & "\" & objFile.Name, Text:=objFile.Name
    Next
End Sub
  1. Führe das UserForm aus:
    • Klicke im VBA-Editor auf F5, um dein UserForm zu testen.

Häufige Fehler und Lösungen

  • Fehler: TreeView-Control nicht sichtbar
    Lösung: Stelle sicher, dass das TreeView-Control korrekt zur Toolbox hinzugefügt wurde und dein UserForm im richtigen Modus angezeigt wird.

  • Fehler: Laufzeitfehler beim Zugriff auf den Pfad
    Lösung: Überprüfe, ob der angegebene Pfad gültig ist. Verwende ThisWorkbook.Path, um sicherzustellen, dass der Pfad zu deiner Arbeitsmappe führt.


Alternative Methoden

Eine alternative Methode zur Anzeige von Ordnern und Dateien in Excel ist die Verwendung von Excel-Formeln oder Power Query. Diese Methoden sind jedoch weniger interaktiv als die Verwendung eines Treeview in einem UserForm.


Praktische Beispiele

Hier ist ein einfaches Beispiel, wie der obige Code verwendet werden kann:

  1. Speichere eine Excel-Datei in einem Ordner mit mehreren Unterordnern und Dateien.
  2. Führe das UserForm aus, um alle Ordner und Dateien in einer hierarchischen Struktur anzuzeigen.

Tipps für Profis

  • Code optimieren: Du kannst den Code weiter optimieren, indem du Fehlerbehandlung hinzufügst, um unerwartete Probleme zu vermeiden.
  • Styling: Experimentiere mit den Eigenschaften des TreeView, um das Aussehen anzupassen.
  • Erweiterte Funktionen: Füge Funktionen hinzu, um Dateien zu öffnen oder zu löschen, indem du die entsprechenden VBA-Befehle implementierst.

FAQ: Häufige Fragen

1. Wie kann ich den Code anpassen, um nur bestimmte Dateitypen anzuzeigen?
Du kannst die Schleife im prcFindFiles Abschnitt anpassen, um nur bestimmte Dateitypen zu filtern, z.B. nur .txt Dateien.

2. Funktioniert dieser Code in Excel 2016?
Ja, dieser Code ist mit Excel 2016 und neueren Versionen kompatibel, solange das TreeView-Control hinzugefügt wurde.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige