ich hab mir mal ein BubbleSort geschrieben, nur mein Problem ist das der Code nur innerhalb dieses Subs Sortiert, das übergebene Array scheint er nicht anzurühren. Aber genau das will ich, ich versteh einfach nicht wo das Problem liegt.
Public <pre>
Sub BubbleSort(a As Variant)
Dim i As Long, n As Long, Temp As Variant
n = UBound(a) 'Feldgröße bestimmen
Do
'In diesem Durchgang wurden noch keine Veränderungen vorgenommen
Sortiert = True
'Gehe alle Feldelemente durch außer dem letzten
For i = 0 To n - 1
If TypeName(a(i)) = "String" And TypeName(a(i + 1)) = "String" Then
'Vergleiche das aktuelle Feldelement mit dem nächsten
If Left(a(i), 1) < Left(a(i + 1), 1) Then
'Ist dieses größer, vertausche die beiden Werte
Temp = a(i)
a(i) = a(i + 1)
a(i + 1) = Temp
'Es wurden Veränderungen vorgenommen
Sortiert = False
Exit For
End If
If Left(a(i), 1) = Left(a(i + 1), 1) Then
If Left(a(i), 2) < Left(a(i + 1), 2) Then
'Ist dieses größer, vertausche die beiden Werte
Temp = a(i)
a(i) = a(i + 1)
a(i + 1) = Temp
'Es wurden Veränderungen vorgenommen
Sortiert = False
Exit For
End If
End If
Else
'Vergleiche das aktuelle Feldelement mit dem nächsten
If a(i) < a(i + 1) Then
'Ist dieses größer, vertausche die beiden Werte
Temp = a(i)
a(i) = a(i + 1)
a(i + 1) = Temp
'Es wurden Veränderungen vorgenommen
Sortiert = False
End If
End If
Next i
'Wiederhole den Vorgang, bis bei einem Durchgang keine Veränderungen vorgenommen werden mussten
Loop Until Sortiert
End Sub</pre>
Gruß Thorsten