Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Zahlen mittels VBA richtig sortieren

Zahlen mittels VBA richtig sortieren
12.07.2015 14:19:22
Burghard
Hallo,
in einem Makro habe ich eine Sortierung.
Columns("A:D").Sort Key1:=Range("B2"), Order1:=xlAscending, Key2:=Range("D2") _
, Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _
False, Orientation:=xlTopToBottom
Das Problem ist, dass Excel für mich beim Key2 nicht ganz richtig sortiert, also 1, 11, 12, ..., 2, 21, 22, ... , 3 etc.
Kann man beim Key2 die Sortierung mittels VBA ändern in:
1, 2, 3, ..., 11, 12, ... 21, 22, ... ?
Hilfe/Info wäre nett.
Grüße Burghard

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zahlen mittels VBA richtig sortieren
12.07.2015 14:34:10
Peter
Hallo Burghard,
dann sind deine Werte keine Zahlen, sondern Text und der wird nun einmal so sortiert.
Du musst also entweder Zahlen aus dem Text machen, oder den Text mit Vornullen versehen und alle Text gleich lang machen.
Gruß Peter

AW: Zahlen mittels VBA richtig sortieren
12.07.2015 14:39:07
Burghard
Hallo Peter,
danke für die Info! Baue die Sache entsprechend um.
Grüße Burghard

Anzeige
AW: Zahlen mittels VBA richtig sortieren
12.07.2015 15:43:25
Daniel
Hi
wenn du als Textformatierte Zahlen wie Zahlen sortieren willst (2 kommt vor 11), dann gibt des dafür den Parameter:
DataOption:=xlSortTextAsNumbers
bzw für die textmässige Sortierung (2 kommt nach 11):
DataOption:=xlSortTextAsNumbers
probier das mal aus, wenns nicht funktioniert, könnte es auch daran liegen dass es in Excel 2000 diese Option noch nicht gibt oder anders benannt ist.
Daher sortiere mal von Hand und zeichne mit dem Recorder auf.
Excel wird dich dann fragen, wie sortiert werden soll und die entsprechenden Parameter aufzeichen:
Gruss Daniel
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige

Infobox / Tutorial

Zahlen mittels VBA richtig sortieren


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und gehe zu dem Arbeitsblatt, das die zu sortierenden Zahlen enthält.

  2. Öffne den VBA-Editor: Drücke ALT + F11.

  3. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf "VBAProject (deinDateiname)", wähle "Einfügen" und dann "Modul".

  4. Gib den folgenden Code ein:

    Sub SortiereZahlen()
        Columns("A:D").Sort Key1:=Range("B2"), Order1:=xlAscending, _
            Key2:=Range("D2"), Order2:=xlAscending, _
            Header:=xlGuess, OrderCustom:=1, MatchCase:=False, _
            Orientation:=xlTopToBottom, DataOption:=xlSortTextAsNumbers
    End Sub
  5. Schließe den VBA-Editor und kehre zu Excel zurück.

  6. Führe das Makro aus: Drücke ALT + F8, wähle SortiereZahlen aus und klicke auf "Ausführen".


Häufige Fehler und Lösungen

  • Problem: Die Werte werden nicht korrekt sortiert.

    • Lösung: Stelle sicher, dass die Werte als Zahlen formatiert sind. Wenn sie als Text vorliegen, kannst Du sie umwandeln, indem Du vor den Zahlen Vornullen hinzufügst oder sie in Zahlen konvertierst.
  • Problem: Der Parameter DataOption wird nicht erkannt.

    • Lösung: Überprüfe die Excel-Version. Diese Option könnte in älteren Versionen wie Excel 2000 anders benannt oder nicht vorhanden sein.

Alternative Methoden

Wenn die oben genannten Schritte nicht funktionieren, kannst Du auch die Sortierung manuell vornehmen:

  1. Markiere die zu sortierenden Daten.
  2. Gehe zu Daten in der Menüleiste und klicke auf Sortieren.
  3. Wähle die Spalte aus, nach der Du sortieren möchtest, und stelle sicher, dass die Sortierung auf "Zahlen nach Größe sortieren" eingestellt ist.

Praktische Beispiele

Angenommen, Du hast folgende Zahlen in Spalte B (Textformat):

1
11
2
21
3

Wenn Du die Sortierung mit dem VBA-Code anwendest, wird das Ergebnis korrekt als:

1
2
3
11
21

Das zeigt, wie wichtig es ist, die richtige Sortieroption zu wählen, um die gewünschten Ergebnisse zu erhalten.


Tipps für Profis

  • Nutze den VBA-Recorder, um die Schritte zur Sortierung aufzuzeichnen. Dadurch erhältst Du automatisch den benötigten Code, den Du dann anpassen kannst.
  • Teste verschiedene Sortieroptionen, um das gewünschte Ergebnis zu erzielen, insbesondere wenn Du mit gemischten Daten (Zahlen und Text) arbeitest.

FAQ: Häufige Fragen

1. Was mache ich, wenn meine Zahlen als Text formatiert sind?
Du kannst sie umwandeln, indem Du sie in eine neue Spalte kopierst und die Funktion WERT() verwendest, um sie in Zahlen umzuwandeln.

2. Wie kann ich sicherstellen, dass die Sortierung korrekt ist?
Vergewissere Dich, dass alle Werte als Zahlen formatiert sind und dass Du den Parameter DataOption:=xlSortTextAsNumbers verwendest, um die richtige Sortierung zu gewährleisten.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige