Listbox mit allen txt.Dateinamen des Pfades liest

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: Listbox mit allen txt.Dateinamen des Pfades liest
von: Jens
Geschrieben am: 09.12.2003 18:53:46

einen guten Abend allen im Forum.
mit dem nachfolgendem Code lese ich alle txt.Dateien des aktuellen Pfades aus. Das funktioniert soweit einwandfrei. Nun möchte ich aber aus Gründen der Übersichtlichkeit nur den Dateinamen in der Listbox listen und nicht den kompletten Pfad. Was muß ich da im Code ändern?


Dim Suchpfad As String, suchbegriff As String, Dateiform As String
Dim oldStatus As Variant
ListBox1.Clear
Suchpfad = ThisWorkbook.Path 'InputBox("Geben Sie den Ordner an, der durchsucht werden soll.", "Pfad definieren", Application.DefaultFilePath)
'If Suchpfad = "" Then Exit Sub
Dateiform = ".txt" 'InputBox("Geben Sie den Dateityp an der gesucht werden soll", "Dateierweiterung", "*.txt") '*.xls
'If Dateiform = "" Then Exit Sub
Application.ScreenUpdating = True
oldStatus = Application.StatusBar
With Application.FileSearch
.LookIn = Suchpfad
.SearchSubFolders = False
.FileName = Dateiform
If .Execute() > 0 Then
TotFiles = .FoundFiles.Count
Application.StatusBar = "Total " & TotFiles & " gefunden"
For i = 1 To .FoundFiles.Count
gefFile = .FoundFiles(i)
'In Listbox eintragen
Me.ListBox1.AddItem (gefFile)
Next i
End If
End With
Application.StatusBar = oldStatus
Application.ScreenUpdating = True
End Sub

Danke für jede Hilfe

Bild


Betrifft: AW: Listbox mit allen txt.Dateinamen des Pfades liest
von: Hajo_Zi
Geschrieben am: 09.12.2003 20:13:04

Hallo Jens

hier mal meinen Code für eine Userform mit Kistbox. Die Anpassung dürfte bei Deinem Level kein Problem sein.


Private Sub UserForm_Initialize()
    Dateiliste
End Sub


Sub Dateiliste()
Dim Verzeichnis() As String
Dim Anzahl As Integer
Dim I As Integer
Dim Dateiname As String
Anzahl = 0
' Liste erstellen
Dateiname = Dir("E:\Eigene Dateien\Hajo\" & "*.xls")
I = 3
Do While Dateiname <> ""
' Veränderung für DaPetra
' z.B. Verwaltung.xls und Test.xls) falls sie vorhanden sind nicht anzeigen
' und Anzeige ohne Dateityp
If Dateiname <> "Adresse.xls" And Dateiname <> "autoh.xls" Then
Anzahl = Anzahl + 1
ReDim Preserve Verzeichnis(1 To Anzahl)
' Verzeichnis(Anzahl) = Mid(Dateiname, 1, Len(Dateiname) - 4)
Verzeichnis(Anzahl) = Dateiname
End If
Dateiname = Dir
Loop
' Dateinamen sortieren
Sort_A_Z Verzeichnis, LBound(Verzeichnis), UBound(Verzeichnis) ' Lbound kleinster Wert,UBound Größter Wert
' Dateinamen in Listbox1 schreiben
For I = Anzahl To 1 Step -1
ListBox1.AddItem Verzeichnis(I)
Next I
End Sub


Public Sub Sort_Z_A(SortArray, L, R)
' sortieren von Z bis A
' von GerdZ Herber.de
Dim I, J, x, y
I = L
J = R
x = SortArray((L + R) / 2)
While (I <= J)
While (SortArray(I) < x And I < R)
I = I + 1
Wend
While (x < SortArray(J) And J > L)
J = J - 1
Wend
If (I <= J) Then
y = SortArray(I)
SortArray(I) = SortArray(J)
SortArray(J) = y
I = I + 1
J = J - 1
End If
Wend
If (L < J) Then Call Sort_Z_A(SortArray, L, J)
If (I < R) Then Call Sort_Z_A(SortArray, I, R)
End Sub


Public Sub Sort_A_Z(SortArray, L, R)
' sortieren von A bis Z
' von GerdZ Herber.de
Dim I, J, x, y
I = L
J = R
x = SortArray((L + R) / 2)
While (I <= J)
While (SortArray(I) > x And I < R)
I = I + 1
Wend
While (x > SortArray(J) And J > L)
J = J - 1
Wend
If (I <= J) Then
y = SortArray(I)
SortArray(I) = SortArray(J)
SortArray(J) = y
I = I + 1
J = J - 1
End If
Wend
If (L < J) Then Call Sort_A_Z(SortArray, L, J)
If (I < R) Then Call Sort_A_Z(SortArray, I, R)
End Sub




Falls Code vorhanden wurde dieser getestet unter Betriebssystem XP Pro und Excel Version XP Pro.
Bitte keine Mail, Probleme sollten im Forum gelöst werden.
Microsoft MVP für Excel
Das Forum lebt auch von den Rückmeldungen.




Bild


Betrifft: AW: Listbox mit allen txt.Dateinamen des Pfades liest
von: Jens
Geschrieben am: 09.12.2003 21:43:01

Danke für die gute Hilfe.
den Code habe ich noch an meine Bedürfnisse anpassen können.

Danke Jens


Bild

Beiträge aus den Excel-Beispielen zum Thema " Listbox mit allen txt.Dateinamen des Pfades liest"