HERBERS Excel-Forum - die Beispiele

Thema: Verzeichnisbaum aufrufen und Dateien in ListBox auflisten

Home

Gruppe

Dialog

Problem

Wie kann ich mir alle Laufwerke mit ihren Verzeichnissen anzeigen und die Exceldateien eines ausgewählten Verzeichnisses in der Listbox einer UserForm auflisten lassen?

Lösung
Geben Sie den nachfolgenden Code in das Klassenmodul der UserForm ein.
ClassModule: frmDateiListe

Private Sub cmdWeiter_Click()
  Unload Me
End Sub

Private Sub UserForm_Initialize()
   Dim iCounter As Integer
   Dim sFolder As String
   sFolder = GetDirectory
   If sFolder = "" Then End
   With Application.FileSearch
      .LookIn = sFolder
      .Execute
      For iCounter = 1 To .FoundFiles.Count
         lstFiles.AddItem .FoundFiles(iCounter)
      Next iCounter
   End With
End Sub

StandardModule: basFunctions

Public Type BROWSEINFO
    hOwner As Long
    pidlRoot As Long
    pszDisplayName As String
    lpszTitle As String
    ulFlags As Long
    lpfn As Long
    lParam As Long
    iImage As Long
End Type

Declare Function SHGetPathFromIDList Lib "shell32.dll" _
    Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) As Long

Declare Function SHBrowseForFolder Lib "shell32.dll" _
  Alias "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As Long

Function GetDirectory(Optional Msg As String) As String
    Dim bInfo As BROWSEINFO
    Dim Path As String
    Dim r As Long, x As Long, pos As Integer
    bInfo.pidlRoot = 0&
    If IsMissing(Msg) Then
        bInfo.lpszTitle = "Wählen Sie bitte einen Ordner aus."
    Else
        bInfo.lpszTitle = Msg
    End If
    bInfo.ulFlags = &H1
    x = SHBrowseForFolder(bInfo)
    Path = Space$(512)
    r = SHGetPathFromIDList(ByVal x, ByVal Path)
    If r Then
        pos = InStr(Path, Chr$(0))
        GetDirectory = Left(Path, pos - 1)
    Else
        GetDirectory = ""
    End If
End Function

StandardModule: basMain

Sub CallForm()
   frmDateiListe.Show
End Sub

Beiträge aus dem Excel-Forum zu den Themen Dialog und ListBox

Listbox filtern Listbox fuellen mit Wert entsprechend Markierung
Listbox Spezial VBA - Listbox in Abhängigkeit füllen
Listbox und .rowsource (ActiveSheet) Doppelte in Listbox zur Auswahl stellen
Listbox viele spalten Absatzzeichen in Textbox und Listbox verhindern
Listbox nach öffnen der Userform füllen Listbox horizontal
ListBox mit CheckBox bei Auswahl Page anzeigen xlDialogInsertHyperlink.show
Vorauswahl in einer Listbox ListBox editieren und in die Tabelle übertragen
Arbeitmappen über Dialogfeld zusammen fassen Daten aus Listbox in Textbox einlesen und zurück i
Eingetragene Zeilen in UF Listbox zählen ListBox-Shape: Zugriff auf ListBox-Eigenschaften
Listbox in UF 5.0 Dialog
Werte in ListBox kopieren Mehrspaltige ListBox füllen
Speichern unter Dialog in Word aufrufen inkl. Pfad ListBox
Druckerdialog Listbox füllen
Listboxeintrag unter Mauszeiger in Listbox scrollen / text in TB teilweise fett
Dateityp im "Speichern unter"-Dialog vorgeben Makro stoppen, wenn Excel-Dialog?
Suche nach Einträgen in 2. Spalte der Listbox Inhalt der ListBox in Tabelle kopieren
xlDialogOpen anpassen Suchfunktion für Listbox in Userform integrieren
ListBox1_DblClick Hyperlink öffnen ListBox sortieren
ListBox spaltenüberschriften listbox
Ausgewählte Zelle aus Listbox befüllen ListBox auslesen
Klick in definierten Rangebereich startet Dialog werte aus listbox löschen
daten aus tabelle in listbox listbox
Suche & Listbox listbox
ListBox - Werte nur einmal einlesen Suche in ListBox-Ausgabe ComboBox
Listbox Begriff in ListBox suchen