ich möchte ein Listox haben, in der alle Dateien eines Ordners ohne Unterordner
aufgelistet werden. Ich möchte aber nur den Namen, ohne Pfad und ohne Endung.
geht das irgendwie zu machen und wenn ja, wer kann mir dabei helfen?
Schönen Abend Sophie
Option Explicit
Option Compare Text
Private Sub CMD_Auslesen_Click()
Dim LoI As Long
For LoI = 0 To ListBox1.ListCount - 1
MsgBox ListBox1.List(LoI, 0)
Next LoI
End Sub
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\" & "*.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
Anzahl = Anzahl + 1
ReDim Preserve Verzeichnis(1 To Anzahl)
' Verzeichnis(Anzahl) = Mid(Dateiname, 1, Len(Dateiname) - 4)
Verzeichnis(Anzahl) = Dateiname
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
Sub DateiNameInListbox()
Dim lstrDateiName As String
'für "DeinVerzeichnis" musst Du den Pfad eintragen, in dem sich die Excel-Dateien befinden
lstrDateiName = Dir("DeinVerzeichnis\*.xls")
Sheets(1).ListBox1.Clear
Do Until lstrDateiName = ""
Sheets(1).ListBox1.AddItem Left(lstrDateiName, Len(lstrDateiName) - 4)
lstrDateiName = Dir
Loop
End Sub
Private Sub UserForm_Activate()
Call Verzeichnis_lesen
End Sub
Private Function Name_ohne_Ext(strDatei As String) As String
Dim objFso As Object
Set objFso = CreateObject("Scripting.FileSystemObject")
Name_ohne_Ext = objFso.GetBaseName(strDatei)
End Function
Private Function Name_ext(strDatei As String) As String
Dim objFso As Object
Set objFso = CreateObject("Scripting.FileSystemObject")
Name_ext = objFso.GetFileName(strDatei)
End Function