Dateien in Lisbox absteigend einlesen

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
UserForm ListBox


Excel-Version: xp
nach unten

Betrifft: Dateien in Lisbox absteigend einlesen
von: Harald
Geschrieben am: 30.04.2002 - 16:51:52

Hallo Excel Fans,
wie kan ich Dateien aus einem festem Ordner in eine Listbox nach dem Dateiname absteigend sortiert einlesen.

Vielen Dank für eure Hilfe

Gruß Harald


nach oben   nach unten

Re: Dateien in Lisbox absteigend einlesen
von: MRR
Geschrieben am: 30.04.2002 - 20:12:31

Hallo Harald,
hier eine mögliche Lösung. Ich gehe davon aus, dass sich die Listbox in einer Userform befindet.

Private Sub UserForm_Initialize()
Dim As Integer
Dim Dateiname
Dim Dateien()
Const Pfad = "C:\Test\*.*"
Dateiname = Dir(Pfad)
i = 0
Do While Dateiname <> ""
  ReDim Preserve Dateien(i)
  Dateien(i) = Dateiname
  i = i + 1
  Dateiname = Dir()
Loop
QuickSort Dateien
For i = 0 To UBound(Dateien)
  ListBox1.AddItem Dateien(i)
Next
End Sub


Sub QuickSort(ByRef VA_array, Optional intVon, Optional intBis)
  On Error Resume Next
  Dim intLow2, intHigh2, i As Integer
  Dim arr1, arr2 As Variant
  If IsMissing(intVon) Then
    intVon = LBound(VA_array, 1)
  End If
  If IsMissing(intBis) Then
    intBis = UBound(VA_array, 1)
  End If
  intLow2 = intVon
  intHigh2 = intBis
  arr1 = VA_array((intVon + intBis) / 2)
  While (intLow2 <= intHigh2)
    While (UCase(VA_array(intLow2)) < UCase(arr1) And _
      intLow2 < intBis)
      intLow2 = intLow2 + 1
    Wend
    While UCase((VA_array(intHigh2)) > UCase(arr1) And _
      intHigh2 > intVon)
      intHigh2 = intHigh2 - 1
    Wend
    If (intLow2 <= intHigh2) Then
      arr2 = VA_array(intLow2)
      VA_array(intLow2) = VA_array(intHigh2)
      VA_array(intHigh2) = arr2
      intLow2 = intLow2 + 1
      intHigh2 = intHigh2 - 1
    End If
  Wend
  If (intHigh2 > intVon) Then Call QuickSort(VA_array, intVon, intHigh2)
  If (intLow2 < intBis) Then Call QuickSort(VA_array, intLow2, intBis)
End Sub


HTH, Matthias
nach oben   nach unten

Re: Dateien in Lisbox absteigend einlesen
von: Harald
Geschrieben am: 01.05.2002 - 11:58:15

Hallo Matthias,
soweit funktioniert das Makro, nur die Sortierung ist durcheinander,
es sollte absteigend nach dem Dateinamen sortiert eingelesen werden .
Beispiel:
C:/Auftrag/202049 Test 12.50.xls
C:/Auftrag/202048 Test 11.30.xls
C:/Auftrag/202047 Test 09.30.xls
C:/Auftrag/202046 Test 18.30.xls

Vielen Dank für deine Hilfe

Gruß Harald

 nach oben

Beiträge aus den Excel-Beispielen zum Thema "Dateien in Lisbox absteigend einlesen"