Sortieren mit der BubbleSort Routine

Das Thema Excel und Sortieren ist sehr vielfältig.

In diesem Beitrag zeigen wir Ihnen, wie Zahlen per VBA mit Hilfe der sogenannten BubbleSort Routine sortiert werden können.

Wikipedia bezeichnet die BubbleSort-Routine wie folgt: "BubbleSort (auch Sortieren durch Aufsteigen) ist ein Algorithmus, der vergleichsbasiert eine Liste von Elementen sortiert."

Zum Sortieren von Zahlen mit Hilfe der BubbleSort Routine kann der nachfolgend vorgestellte VBA-Code verwendet werden.

In diesem Beispiel befinden sich die zu sortierenden Zahlen im Zellbereich A5:A20 und sollen im Bereich B5:B20 in sortierter Reihenfolge ausgegeben werden.

Sub BubbleSort()

'** Dimensionierung der Variablen
Dim arr(1 To 1000)
Dim iCounter As Integer, iCount As Integer, iTmp As Integer, _
  lngLz As Long, lngStartZeile As Long, lngSpalte As Long

'** Startzeile und -spalte vorgeben
lngStartZeile = 5
lngSpalte = 1

'** Ermittlung der letzten Zeile
lngLz = ActiveSheet.Cells(Rows.Count, lngSpalte).End(xlUp).Row

'** Einlesen der unsortierten Daten in ein Array
For a = lngStartZeile To lngLz
  arr(a) = ActiveSheet.Cells(a, lngSpalte).Value
Next a

'** Sortierungsroutine
For iCounter = lngStartZeile To lngLz
  For iCount = iCounter + 1 To lngLz
    If arr(iCounter) > arr(iCount) Then
      iTmp = arr(iCounter)
      arr(iCounter) = arr(iCount)
      arr(iCount) = iTmp
    End If
  Next iCount
Next iCounter
   
'** Ausgeben der sortierten Daten in das Arbeitsblatt
For iCounter = lngStartZeile To lngLz
  ActiveSheet.Cells(iCounter, lngSpalte + 1).Value = arr(iCounter)
Next iCounter

End Sub

Über den untenstehenden Download-Link können Sie die Beispieldatei herunterladen. Zum Starten des Sortiervorgangs genügt ein Klick auf die Schaltfläche "Sortieren", das Ergebnis wird in der nebenstehenden Spalte B ausgegeben, siehe Abbildung 1.


Abbildung1

Weitere Beispiele zum Thema "Sortieren" finden Sie unter den nachfolgenden Links:

 

Partnerlinks

Relevante Artikel

  • Konvertieren eines mehrzeiligen Daten-Blocks zu einem konstistenten Datensatz

    In diesem Beispiel zeigen wir Ihnen, wie sich ein nicht konsistenter Datenblock in einen kosistenten Datensatz konvertieren lässt. Die...

  • Zelladresse in Spalten- und Zeilenangaben trennen

    101084 Dieser Code trennt die Angabe der Adresse C15 in die Spalte C und in die Zeile 15. Die Trennung erfolgt mit der...

  • Eingaben in Tabellenblatt protokollieren

    Die folgende Lösung zeigt, wie Sie Eingaben in ein Tabellenblatt protokollieren können. Zum Protokollieren, müssen Sie die Werte nur auf...

  • Zeilen (Einträge) abhängig vom Datum löschen

    Aus diesem Datenbestand sollen die Zeilen gelöscht werden, deren Datum in Spalte A im Monat November liegt.     A B C D 1 12.08.2002 daten daten daten 2 15.08.2002 daten daten daten 3 20.08.2002 daten daten daten 4 12.09.2002 daten daten daten 5 15.09.2002 daten daten daten 6 20.09.2002 daten daten daten 7 12.10.2002 daten daten daten 8 15.10.2002 daten daten daten 9 20.10.2002 daten daten daten 10 15.11.2002 daten daten daten 11 15.11.2002 daten daten daten 12 15.11.2002 daten daten daten 13 15.11.2002 daten daten daten 14 12.12.2002 daten daten daten 15 15.12.2002 daten daten daten 16 20.12.2002 daten daten daten Nach...

  • Dynamische DropDown-Liste mit Text Vorauswahl

    In diesem Beitrage zeigen wir, wie sich die Inhalte von DropDown-Felder dynamisch erzeugen lassen. Die Beispieldatei ist...

Ihre Zufriedenheit ist unser Ziel, deshalb verwenden wir Cookies. Mit diesen ermöglichen wir, dass unsere Webseite zuverlässig und sicher läuft, wir die Performance im Blick behalten und Sie besser ansprechen können. Cookies werden benötigt, damit technisch alles funktioniert und Sie auch externe Inhalte lesen können. Des Weiteren sammeln wir unter anderem Daten über aufgerufene Seiten, getätigte Käufe oder geklickte Buttons, um so unser Angebot an Sie zu Verbessern. Mehr über unsere verwendeten Dienste erfahren Sie unter „Weitere Informationen“. Mit Klick auf „Akzeptieren“ erklären Sie sich mit der Verwendung dieser Dienste einverstanden. Ihre Einwilligung können Sie jederzeit mit Wirkung auf die Zukunft widerrufen oder ändern.