AW: Alle Dateinamen in Listbox sortieren
19.11.2006 20:52:36
Nepumuk
Hallo Egon,
folgender Code in dem Modul deines Userforms:
' **********************************************************************
' Modul: UserForm1 Typ: Userform
' **********************************************************************
Option Explicit
Private Sub CommandButton1_Click()
Dim vntArray As Variant
With Tabelle1
vntArray = .Range(.Cells(2, 1), .Cells(.Rows.Count, 1).End(xlUp))
End With
Call prcSort(1, UBound(vntArray), vntArray)
ListBox1.List = vntArray
End Sub
Private Sub prcSort(lngLBorder As Long, lngUBorder As Long, vntArray As Variant)
Dim lngIndex1 As Long, lngIndex2 As Long
Dim strBuffer As String, dmtTemp As Date
lngIndex1 = lngLBorder
lngIndex2 = lngUBorder
dmtTemp = CDate(Mid$(vntArray((lngLBorder + lngUBorder) \ 2, 1), 1, 8))
Do
Do While CDate(Mid$(vntArray(lngIndex1, 1), 1, 8)) < dmtTemp
lngIndex1 = lngIndex1 + 1
Loop
Do While dmtTemp < CDate(Mid$(vntArray(lngIndex2, 1), 1, 8))
lngIndex2 = lngIndex2 - 1
Loop
If lngIndex1 <= lngIndex2 Then
strBuffer = vntArray(lngIndex1, 1)
vntArray(lngIndex1, 1) = vntArray(lngIndex2, 1)
vntArray(lngIndex2, 1) = strBuffer
lngIndex1 = lngIndex1 + 1
lngIndex2 = lngIndex2 - 1
End If
Loop Until lngIndex1 > lngIndex2
If lngLBorder < lngIndex2 Then Call prcSort(lngLBorder, lngIndex2, vntArray)
If lngIndex1 < lngUBorder Then Call prcSort(lngIndex1, lngUBorder, vntArray)
End Sub
Gruß
Nepumuk