Registriert seit: 18.04.2014
Version(en): Office 2010
Hallo liebe Experten von Excel,
in meinem Blatt stehen zeilenweise in einer Spalte diese Werte: Diese Spalte hat das Format STANDARD. Aber auch wenn ich sie als TEXT definiere, ändert sich da nichts am Ergebnis. 7032 7033 7034 7047_3D 7047_5D 7047_15D 7050 7532 7532_3D 7532_8D 7532_10D 7542 7583 Wenn die Listbox diese Spalte einliest und anzeigt ist die Sortierreihenfolge eine andere, scheinbar nach Zeichenlänge und ASCII-Logik.....etc.. 7032 7033 7034 7050 7532 7542 7583 7047_15D 7047_3D 7047_5D 7532_10D 7532_3D 7532_8D
Das ist leider nicht gewünscht. Wie kann ich der Listbox sagen, dass die eingelesenen Spaltenwerte auch so in der Listbox stehen?
Registriert seit: 29.09.2015
Version(en): 2030,5
Wie redest du nun mit der Listbox ?
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
(11.10.2015, 17:17)maine-coon schrieb: Wenn die Listbox diese Spalte einliest und anzeigt ist die Sortierreihenfolge eine andere, scheinbar nach Zeichenlänge und ASCII-Logik.....etc.. Hallo Achim, - Was ist das für eine ListBox genau und wo steht sie? - Wie wird die Liste eingelesen? Gruß Uwe
Registriert seit: 18.04.2014
Version(en): Office 2010
11.10.2015, 17:44
(Dieser Beitrag wurde zuletzt bearbeitet: 11.10.2015, 17:47 von maine-coon.)
REM Über viele OptionButton, Comboboxen..etc..etc...TextBoxen werden die gewünschten Daten über den Spezialfilter gefiltert. Code: Worksheets("Tools").Range("A1:DS10000").AdvancedFilter Action:=xlFilterCopy, _ CriteriaRange:=Worksheets("Auswahl").Range("A1:DS2"), CopytoRange:=Worksheets("Auswahl").Range("A3"), Unique:=False
Code: REM Anschließend werden Daten aus dem Blatt "Auswahl" in die Listbox einlesen. With Worksheets("Auswahl") ListBox1.RowSource = "Auswahl!" & .Range(.Cells(4, 1), .Cells(n + 3, 125)).Address End With
Oje... Wichtiger Nachtrag: Ich sehe gerade, dass die vom Spezialfilter ermittelten Daten im Blatt Auswahl exakt so wie in der Listbox sind. Das heißt, es ist gar nicht die Listbox, die das falsch macht, sondern der Filter.
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hallo Achim, dann probiere es mal so: Code: With Worksheets("Auswahl") With .Range(.Cells(4, 1), .Cells(n + 3, 125)) .NumberFormat = "@" .TextToColumns Destination:=.Cells(1), _ DataType:=xlFixedWidth, _ FieldInfo:=Array(0, 2) ListBox1.RowSource = "Auswahl!" & .Address End With End With
Gruß Uwe
Registriert seit: 18.04.2014
Version(en): Office 2010
Damit erhalte ich diesen Laufzeitfehler 1004.
Excel kann nur eine Spalte auf einmal konvertieren. Der Bereich kann mehrere Zeilen hoch sein, darf jedoch nicht mehr als eine Spalte breit sein.
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
11.10.2015, 18:33
(Dieser Beitrag wurde zuletzt bearbeitet: 11.10.2015, 18:42 von Kuwer.)
(11.10.2015, 18:21)maine-coon schrieb: Damit erhalte ich diesen Laufzeitfehler 1004.
Excel kann nur eine Spalte auf einmal konvertieren. Der Bereich kann mehrere Zeilen hoch sein, darf jedoch nicht mehr als eine Spalte breit sein. Hallo Achim, das hatte ich doch ganz vergessen, es auf eine Spalte zu begrenzen: Code: With Worksheets("Auswahl") With .Range(.Cells(4, 1), .Cells(n + 3, 125)) .Columns(1).NumberFormat = "@" .Columns(1).TextToColumns Destination:=.Cells(1, 1), _ DataType:=xlFixedWidth, _ FieldInfo:=Array(0, 2) ListBox1.RowSource = "Auswahl!" & .Address End With End With
Gruß Uwe
Registriert seit: 18.04.2014
Version(en): Office 2010
Mensch Uwe, der Wahnsinn....Es funktioniert, aber ich habe (fast) nichts verstanden..... Und es wird jetzt noch etwas kribbeliger. Also, die Listbox erhält nun aus dem Blatt "Auswahl" die Daten in der richtigen Reihenfolge sortiert. Aber die Listbox hat ja mehr als nur diese eine Spalte. Und ich habe einige OB (OptionButton) zum Sortieren VOR- und Rückwärts anderer Spalten in der Listbox. Dadurch wird diese eingangs richtige Sortierung wieder zerstört. Die Sortierungen mache ich hiermit: Code: Sub Sortieren() NoAction = True With Worksheets("Auswahl").Range("A4:DS10000") .Sort Key1:=.Range(Sort_A), Order1:=Richtung, Key2:=.Range(Sort_B) _ , Order2:=xlAscending, Key3:=.Range(Sort_C), Order3:=xlAscending, Header:= _ xlNo, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _ DataOption1:=xlSortTextAsNumbers, DataOption2:=xlSortNormal, DataOption3 _ :=xlSortNormal End With NoAction = False End Sub
Eigentlich müsste der von dir funktionierende Code in diese Sortierroutine mit drin sein. Aber das geht so wohl nicht. Ich habe es zumindest nicht hinbekommen.
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hallo Achim, mit DataOption1:=xlSortTextAsNumbers erreichst Du ja genau das, was Du nicht willst! Gruß Uwe
Registriert seit: 18.04.2014
Version(en): Office 2010
Jetzt bin ich wieder ganz am Anfang.
Also, ich habe deinen Code eingebaut. Die Listbox wird dadurch korrekt eingelesen. Soweit so gut.
Wenn ich nun in meiner Sortierroutine das DataOption1:=xlSortTextAsNumbers gegen DataOption1:=xlSortNormal ändere, dann ist alles beim alten.
Aber ich vermute, dass ich dich nicht richtig verstanden habe.
|