Was muß man tun, damit Excel Umlaute immer nach den gleichen Regeln sortiert?
Siehe Hardcopy:
http://s14.directupload.net/file/d/2729/q7by9be7_jpg.htm
Wenn ich die Tabelle aufsteigend nach Spalte A sortiere steht das Ö vor dem S, was für mich bedeutet das S größer als Ö ist.
Wenn ich aber Excel VBA die beiden Zellinhalte vergleiche ist nun aber Ö größer als S ???
Damit meine Programme funktionieren sollte der Vergleich schon immer das gleiche Ergebnis zurückbringen. Was kann man tun?
6 Antworten
Die StrComp-Funktion mit dem Parameter „Text“ sollte dir da weiterhelfen.
http://msdn.microsoft.com/de-de/library/9s233cfc(v=vs.90).aspx
Zur ersten Frage: In der Beschreibung steht, dass Groß- und Kleinschreibung nicht berücksichtigt wird - also ja, es sollte klappen.
Zur zweiten Frage: Schau mal unter der Überschrift „Hinweise“ den Link zur Compare-Anweisung an. Dort ist das Prinzip noch mal erklärt.
In VBA werden die Umlaute als „Char“ verglichen, die deutlich weiter hinten im (erweiterten) ASCII-Code einsortiert sind … :-)
Rechtschreibetechnisch werden Umlaute in Excel – wie im Telefonbuch – als ae/oe/ue einsortiert.
Excel sortiert nach den vorgaben des menschlichen Verständnisse.
VBA hingegen vergleicht den CHAR-Wer von Ö und S. Da alle Umlaute in der ASCI Tabelle weit hinten stehen, ist Ö größer als S.
Super, damit weis ich ja schon mal die Ursache.
Aber wie löse ich nun mein Problem möglichst elegant? Ich will in VBA das gleiche Ergebnis haben wie in Excel!?
Du kannst dir in VBA eine Hilfsspalte einrichten, in der du alle Umlaute durch az oz und sz ersetzt (dass "z" desshalb, damit alle Umlaute hinter das letzte a oder o sortiert werden). Nach dieser Spalte sortierst du, ansonsten wird sie für Anzeige und Druck ausgeblendet.
Was meinst du damit, dass ein Buchstabe größer ist als ein anderer? Du meinst damit wahrscheinlich die Zahlencode in Ascii. Danach kommen die Codes des normalen Alphabetes nacheinander, die Umlaute liegen in anderen Bereichen.
Beim Sortieren hingegen wird ganz normal lnach der Rechtschreibung sortiert. Danach komme Ö eben mal direkt nach O.
Super, Danke! Ich habe mal erste Tests mit dem Umlaut Ö gemacht. Schaut soweit sehr gut aus. Kann man davon ausgehen, daß es mit allen Sonderzeichen und Groß-/Kleinschreibung (z. B. A=a) funktioniert?
Im Test käme -1 zurück, was ok ist: