Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
428to432
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
428to432
428to432
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Dateien eines Ordners lesen spezial
15.05.2004 20:52:24
Sophie
Guten Abend Forum,
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

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Dateien eines Ordners lesen spezial
15.05.2004 21:02:19
Michael
Hallo 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

Gruß Michael
Anzeige
AW: Dateien eines Ordners lesen spezial
Sophie
Hallo Michael,
einlesen geht, aber ich wollte das ja ohne die Endung und das klappt nicht. Hast du
da auch noch einen Hinweis?
Gruß Sophie
AW: Dateien eines Ordners lesen spezial
16.05.2004 12:01:02
Oberschlumpf
Hallo Sophie
Versuch es mal so:


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


Und wenn das Sortieren erwünscht ist, kannst Du ja den Code von Michael angepasst verwenden.
Konnte ich helfen?
Ciao
Thorsten
Anzeige
AW: Dateien eines Ordners lesen spezial
K.Rola
Hallo,
machs so:

Private Sub UserForm_Activate()
Call Verzeichnis_lesen
End Sub

Sub Verzeichnis_lesen()
Dim strLookIn As String, objFs As Object, lngi As Long, strFileName As String
Dim strName As String
strLookIn = "C:\Eigene Dateien\"
strFileName = "*.*"
Set objFs = Application.FileSearch
With objFs
.LookIn = strLookIn
.FileName = strFileName
.SearchSubFolders = False 'True, wenn Subfolder auch gelesen werden sollen
If .Execute > 0 Then
For lngi = 1 To .FoundFiles.Count
strName = .FoundFiles(lngi)
ListBox1.AddItem Name_ohne_Ext(strName) 'ohne Endung
' ListBox1.AddItem Name_ext(strName)'mit Endung
Next
End If
End With
Set objFs = Nothing
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

Gruß K.Rola
Anzeige
danke, klappt perfekt_kwT
Sophie
Sophie
und was passiert? -nix!
16.05.2004 19:33:05
martin
Hallo,
Hhhmm...was passiert denn damit? Hab´s ausprobiert, bei mir tut sich nicht viel.
Greetz
Martin

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige