Hallo Anton,
es geht letztendlich darum, das ">"-Zeichen für die Abwärtssortierung in ein "<"-Zeichen umzuwandeln. Da gibt es viele Möglichkeiten. Nur einen kleinen Eingriff in das bisherige Makro liefert z.B.:
Function bubblesort(arrSortieren,bolDirection)
For i = 0 To UBound(arrSortieren) ‘Anfang einer Schleife mit for next
For j = i + 1 To UBound(arrSortieren)
Debug.Print "Inhalt der Variablen i und j -> "; i & ", " & j
z=arrSortieren(i) > arrSortieren(j)
if bolDirection=true then z=not z
If z=true Then
arrTemp = arrSortieren(i)
arrSortieren(i) = arrSortieren(j)
arrSortieren(j) = arrTemp
End If
Next j
Next i
bubblesort = arrSortieren
End Function
Beachte, dass bolDirection auch in der Argumentenliste steht und übergeben werden muss.
Alternativ kannst du auch die beiden Fälle unterscheiden und Zeilen wiederholen:
Function bubblesort(arrSortieren)
For i = 0 To UBound(arrSortieren) ‘Anfang einer Schleife mit for next
For j = i + 1 To UBound(arrSortieren)
Debug.Print "Inhalt der Variablen i und j -> "; i & ", " & j
if boldirection=false then
If arrSortieren(i) > arrSortieren(j) Then
arrTemp = arrSortieren(i)
arrSortieren(i) = arrSortieren(j)
arrSortieren(j) = arrTemp
End If
else
If arrSortieren(i) < arrSortieren(j) Then
arrTemp = arrSortieren(i)
arrSortieren(i) = arrSortieren(j)
arrSortieren(j) = arrTemp
End If
end if
Next j
Next i
bubblesort = arrSortieren
End Function
oder ganz am Ende das Array einfach rückwärts in ein anderes Array schreiben und diese übergeben.
Gruß
Holger
|