Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Alphabetisch sortieren
#1
Hallo liebe Excelfreunde,

ich möchte Werte in zwei Spalten, die nebeneinander liegen, per VBA alphabetisch sortieren.

Leider sind einige Zellen ohne Werte, sodass nach dem Sortieren die ersten Zeilen leer sind und die zu sortierenden Werte erst einige Zeilen später beginnen.

Wie bekomme ich es hin, dass die leeren Zellen am Ende der Liste erscheinen und trotzdem von A bis Z sortiert wird?
Code:
Sub alphabetisch_sortieren()
'
' alphabetisch_sortieren Makro
'

'
   Range("X2:Y1001").Select
   ActiveWorkbook.Worksheets("Alphabetische Liste Tische").Sort.SortFields.Clear
   ActiveWorkbook.Worksheets("Alphabetische Liste Tische").Sort.SortFields.Add _
       Key:=Range("U2:U1001"), SortOn:=xlSortOnValues, Order:=xlAscending, _
       DataOption:=xlSortNormal
   With ActiveWorkbook.Worksheets("Alphabetische Liste Tische").Sort
       .SetRange Range("U2:V1001")
       .Header = xlGuess
       .MatchCase = False
       .Orientation = xlTopToBottom
       .SortMethod = xlPinYin
       .Apply
   End With
End Sub



Ich bin leider nicht so fit mit VBA, deshalb behelfe ich mir indem ich den Macrorecorder nutze. Hier stoße ich natürlich an meine Grenzen und benötige etwas Unterstützung.





Viele Dank für eure Hilfe.

Michael
Office 2016
Viele Grüße

Michael J. Arriens

Office 2016
Windows 10

Kaum macht man es richtig, schon funktioniert es!
Antworten Top
#2
Hi Michael,

mal ganz unabhängig davon, ob du klassisch über die Menüleiste oder per VBA sortieren willst - ich kann dein Problem aktuell nicht nachvollziehen. Hier mal eine (Beispiel)Liste, die nach Spalte A sortiert werden soll.

Originalzustand:

Tabelle1

AB
1TextZahlen
2
3bbb111
4ttt222
5qqq444
6aaa777
7
8ggg333
9
10kkk555
11eee666

Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8

Und hier nach A sortiert:

Tabelle1

AB
1TextZahlen
2aaa777
3bbb111
4eee666
5ggg333
6kkk555
7qqq444
8ttt222
9
10
11

Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8

Die leeren Zellen sind nicht am Anfang!
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Antworten Top
#3
Hallo auch von mir!
Du sortierst die Spalten X:Y nach dem Sortierschlüssel U  Huh
Das kann ja nicht vernünftig funktionieren!
Nimm entweder X oder Y, dann klappt es auch mit den leeren Zellen.

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#4
(06.10.2015, 07:41)RPP63 schrieb: Hallo auch von mir!
Du sortierst die Spalten X:Y nach dem Sortierschlüssel U  Huh
Das kann ja nicht vernünftig funktionieren!
Nimm entweder X oder Y, dann klappt es auch mit den leeren Zellen.

Gruß Ralf



Hallo Ralf,


vielen Dank.

Ich habe den Fehler sofort korrigiert, aber es bleibt dabei. Die ersten Zeilen bleiben leer.

Kann es daran liegen, dass ich aus verformelten Zellen nur die Werte hierhin kopiere und dann versuche zu sortieren?

Ich bin etwas ratlos, denn in einer neuen Datei funktioniert es auch bei mir tadellos. Ich habe auch schon in diesem Forum nach ähnlichen Fragen gesucht, aber leider nichts gefunden.
Hast du noch eine Idee?
Viele Grüße

Michael J. Arriens

Office 2016
Windows 10

Kaum macht man es richtig, schon funktioniert es!
Antworten Top
#5
Hi Michael,

anonymisiere doch bitte mal deine Datei und lade sie hier hoch. Nur so kann nachvollzogen werden, an was es liegen könnte - alles andere ist ein Stochern im Nebel.

Hier ist beschrieben, wie du Dateien hohladen kannst.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Antworten Top
#6
Hi Michael,

selbst wenn in Spalte A "Lücken" sind und in Spalte B nicht, funktioniert das Sortieren (vorausgesetzt, Du sortierst die richtige Spalte):

Arbeitsblatt mit dem Namen 'Vorher'
 AB
1TextNr.
2h1
3c2
4 3
5a4
6b5
7 6
8f7
9e8
10 9
11 10
12d11
13g12

Arbeitsblatt mit dem Namen 'Nachher'
 AB
1TextNr.
2a4
3b5
4c2
5d11
6e8
7f7
8g12
9h1
10 3
11 6
12 9
13 10
Überlegen macht überlegen
Gruss aus dem schönen Hunsrück
_______ Klaus-Martin _______
Antworten Top
#7
(06.10.2015, 08:57)WillWissen schrieb: Hi Michael,

anonymisiere doch bitte mal deine Datei und lade sie hier hoch. Nur so kann nachvollzogen werden, an was es liegen könnte - alles andere ist ein Stochern im Nebel.

Hier ist beschrieben, wie du Dateien hohladen kannst.

Hallo Günter,



vielen Dank für deine Geduld.
Ich hoffe, dass du meinen Tabellenblattausschnitt deuten kannst. Ich habe es mal auf 10 Zeilen reduziert und mit den Codes gearbeitet.
Code:
Sub alphabetisch_sortieren()
'
' alphabetisch_sortieren Makro
'

'
   Range("U2:V10").Select
   ActiveWorkbook.Worksheets("Alphabetische Liste Tische").Sort.SortFields.Clear
   ActiveWorkbook.Worksheets("Alphabetische Liste Tische").Sort.SortFields.Add _
       Key:=Range("U2:U10"), SortOn:=xlSortOnValues, Order:=xlAscending, _
       DataOption:=xlSortNormal
   With ActiveWorkbook.Worksheets("Alphabetische Liste Tische").Sort
       .SetRange Range("U2:V10")
       .Header = xlGuess
       .MatchCase = False
       .Orientation = xlTopToBottom
       .SortMethod = xlPinYin
       .Apply
   End With
End Sub


Wo ist der verdammte Fehler?


Angehängte Dateien
.htm   TempJean.htm (Größe: 7,38 KB / Downloads: 4)
Viele Grüße

Michael J. Arriens

Office 2016
Windows 10

Kaum macht man es richtig, schon funktioniert es!
Antworten Top
#8
Hi,

Zitat:Wo ist der verdammte Fehler?
Du hast sicherlich noch mehr Code in der Mappe :)
Ich vermute mal das du die Formeln kopierst und als Inhalt einfügst....., habe ich richtig geraten?
Bei wennfehler hast du als Eintrag "" wird jetzt die Formel kopiert ist "" nicht gleich NIX..., darum werden diese Zellen sortiert.
Da ich nicht deinen Code kenn, auch keine Datei vorhanden ist.., ändere mal die Formel auf
=WENNFEHLER(SVERWEIS(ZEILE(A1);$J:$O;2;0);"ZZ")

und füge diese Zeile an deinen Code an:

Code:
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Range("U2:U10").Replace "ZZ", "", xlWhole
lg Chris
Feedback nicht vergessen.
[Bild: v.gif]
3a2920576572206973742064656e20646120736f206e65756769657269672e
Antworten Top
#9
(06.10.2015, 10:43)chris-ka schrieb: Hi,

Du hast sicherlich noch mehr Code in der Mappe :)
Ich vermute mal das du die Formeln kopierst und als Inhalt einfügst....., habe ich richtig geraten?
Bei wennfehler hast du als Eintrag "" wird jetzt die Formel kopiert ist "" nicht gleich NIX..., darum werden diese Zellen sortiert.
Da ich nicht deinen Code kenn, auch keine Datei vorhanden ist.., ändere mal die Formel auf
=WENNFEHLER(SVERWEIS(ZEILE(A1);$J:$O;2;0);"ZZ")

und füge diese Zeile an deinen Code an:

Code:
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Range("U2:U10").Replace "ZZ", "", xlWhole

Hi Chris,
vielen Dank für deine schnelle Reaktion. Das ist ein schöner Trick, nur leider habe ich jetzt am Ende lauter ZZ stehen. Du hast recht mit deiner Annahme, dass ich aus den Formeln nur die Werte kopiere, die ich dann sortieren möchte. Im Grunde möchte ich die Spalten Q und R durch Macros gestalten.
Die gesamte Datei ist etwas umfangreicher mit etwa 90 Tabellenblättern und unzählige kleinen Codes.
Der Einfachheit halber habe ich aus der Sortierung durch Formeln die Werte kopiert, um sie zu sortieren.
Die Sortierung mit Formeln ist nicht so genau, da ich die Buchstaben in Zahlen umwandle und leere (Blanks) nicht berechnet werden.
Ich habe mal den gesamten relevanten Bereich angehängt.
Ich hatte die naive Vorstellung, dass man den Code einfach erweitern könnte, um die leeren Zellen nicht mehr anzuzeigen. Es geht ja auch einigermaßen mit Formeln.
Schau dir mal das Tabellenblatt an. Ich hole mir die Daten aus einem anderen Tabellenblatt, um sie hier weiterzuverarbeiten.
Ich hoffe, ich konnte es etwas deutlicher veranschaulichen.


Angehängte Dateien
.htm   TempJean.htm (Größe: 40,33 KB / Downloads: 2)
Viele Grüße

Michael J. Arriens

Office 2016
Windows 10

Kaum macht man es richtig, schon funktioniert es!
Antworten Top
#10
Hi!
Zwei Bitten:
Zitiere nicht immer den vorherigen Beitrag.
Bitte den blauen Antworten-Button benutzen, nicht den grauen (den könnten die Mods eigentlich ersatzlos streichen oder ihn in "Mit Zitat antworten" umbenennen).
Der Html-Code befindet sich bei Dir in der Zwischenablage.
Den kannst Du einfach per Strg+v in Deine Antwort einfügen.
Siehe:

AB
2AnfangEnde
3Januar 15
Formeln der Tabelle
ZelleFormel
A3=INDIREKT(TEXT((TEIL(ZELLE("dateiname";A1);FINDEN("]";ZELLE("dateiname"))+1;255)&"/0")-1;"MMMM")&"!B3")

Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste