MS-Office-Forum

MS-Office-Forum (http://www.ms-office-forum.net/forum/index.php)
-   Microsoft Excel (http://www.ms-office-forum.net/forum/forumdisplay.php?f=29)
-   -   Userform mit 2 Listen (http://www.ms-office-forum.net/forum/showthread.php?t=343860)

Tomte2301 29.06.2017 14:01

Userform mit 2 Listen
 
Hallo zusammen,

ich bin noch relativ neu in VBA und hänge momentan an einem Problem.
Und zwar habe ich eine Userform erstellt, welche aus mehreren Button und 2 Listen erstellt. Das Tool soll nun folgendes machen:
Klicke ich auf einen Button, so sollen alle Unterordner eines bestimmten Verzeichnis aufgelistet werden.
Wählt man dann in dieser Liste einen Unterordner aus, so sollen die sich darin befindlichen Dateien in der Listbox2 auflisten.

Die Auflistung der Unterordner in Listbox 1 klappt bisher. Eine automatische Auflistung der Dateien von diesem Unterordner jedoch nicht.
Könnte mir hier jemand bitte behilflich sein, oder hat Ideen dazu ?

Hier mein Code, den ich bisher habe um die Listen zu befüllen.

Code:

Sub OrdnerListen(strOrdner2)
 
    Dim Ordner
    Dim FSO As Object
    Dim arrDateien()
    Dim intDateien
    Dim arrDateien2()
    Dim intDateien2
    Dim intCounter As Integer
    Dim strName
 
   
    Set FSO = CreateObject("Scripting.filesystemobject")
 
    For Each Ordner In FSO.getfolder(strOrdner2).subfolders
       
        intDateien = intDateien + 1
      ReDim Preserve arrDateien(1 To intDateien)
      arrDateien(intDateien) = Ordner.Name
     
        FormVertrag.ListBox1.AddItem arrDateien(intDateien)
       
    Next
   
    For intCounter = 0 To FormVertrag.ListBox1.ListCount - 1
      If FormVertrag.ListBox1.Selected(intCounter) Then
     
        strName = strOrdner2 & "" & arrDateien(intDateien)
       
      Do While strName <> ""
      intDateien2 = intDateien2 + 1
      ReDim Preserve arrDateien2(1 To intDateien2)
      arrDateien2(intDateien2) = strName
      strName = Dir()
    Loop
    End If
  Next intCounter
 
  For intCounter = 0 To UBound(arrDateien2)
      FormVertrag.ListBox2.AddItem arrDateien2(intDateien2)
  Next
       
 
End Sub


rastrans 16.07.2017 14:45

Code:

Option Explicit

Const mc_Pfad = "C:Windows"

Private Sub CommandButton1_Click()
    Dim fso As New FileSystemObject
    Dim dirOrdner As Folder
   
    Me.ListBox1.Clear
   
    For Each dirOrdner In fso.getfolder(mc_Pfad).subfolders
        Me.ListBox1.AddItem dirOrdner.Name
    Next
End Sub

Private Sub ListBox1_Change()
    Dim fso As New FileSystemObject
    Dim dirOrdner As File
   
    Me.ListBox2.Clear
   
    For Each dirOrdner In fso.getfolder(mc_Pfad & Me.ListBox1.Value).Files
        Me.ListBox2.AddItem dirOrdner.Name
    Next
End Sub

CommandButton1 füllt dir die ListBox1 mit den Verzeichnissen.
Wenn du etwas in ListBox1 auswählst, dann wird Listbox2 mit den Datei gefüllt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:51 Uhr.

Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.