Startseite

Daten auslesen und sortieren

Auf dieser Seite zeige ich einen kleinen Trick, mit dem es möglich ist, aus einer ungeordneten Zahlenreihe die Inhalte auszulesen und sortiert in eine andere Spalte zurückzuschreiben. Gleichzeitig werden dabei Duplikate unter den Werten unterdrückt. Somit eignet sich das Makro auch dazu, Zahlenreihen zum Beispiel für Kombinationsfelder aufzubereiten.
Hier das Makro zum Kopieren:
Sub uebertragen_und_sortieren()
' Liest aus einer Spalte (hier A) Zahlenwerte, wobei der Wert gleichzeitig als 
' Varianblenfeldbezeichner benutzt wird.
' Dadurch erfolgt beim Zurückschreiben der Werte, in eine neue Spalte, automatisch eine Sortierung.
' Doppelte Werte werden nicht mit ausgegeben.
' Klaus-Dieter Oppermann  (April 2002)
Dim we(1000), ma%, z%                           ' Variable deklarieren
ma = 0                                          ' Wertzuweisung an Variable
z = 3                                           ' Startwert für Schleifenzähler
Do While Cells(z, 1) <> ""                      ' Schleifenbedingung (laufe solange Zelle nicht leer)
    If Cells(z, 1) > ma Then ma = Cells(z, 1)   ' Höchste Zahl ermitteln
        we(Cells(z, 1)) = Cells(z, 1)           ' Zellinhalt an Variable übergeben
z = z + 1                                       ' Schleifenzähler um Wert 1 erhöhen
Loop                                            ' Wendepunkt für Schleife
rr = 2                                          ' Zähler für Variable
For r = 1 To ma                                 ' Schleife zum Zurückschreiben der Werte
    If we(r) > 0 Then                           ' Wenn Wert größer als Null...
        rr = rr + 1                             ' ...Zähler um Wert 1 erhöhen
        Cells(rr, 2) = we(r)                    ' ...Wert zurückschreiben
    End If                                      ' Ende Bedingung
Next r                                          ' Wendepunkt für Schleife
End Sub                                         ' Ende dse Makros