HERBERS Excel-Forum - das Archiv
alphanummerisch mehrere Spalten sortieren
Ludmila

Haoo Spezialisten,
ich möchte nacholgende Werte aufsteigend sortieren lassen
SPA SPB usw.
12 Text bis Spalte 12
13 Text bis Spalte 12
14 Text bis Spalte 12
Die Spalte "A:A" ist als Text formatiert
Egal was ich probieren es kommen immer verschiedene Sortierfolgen raus.

Sub AngSort()
Dim Endrow As Integer
Dim wks As Worksheet
Set wks = Sheets("A")
With wks
.Select
Endrow =  .Cells(RowsCount, 1).End(xlUp).Row + 1
Range(Cells(21, 1), Cells(Endrow, 11)).Select
Selection.Sort Key1:=wks.Range("A21"), _
Order1:=xlAscending, _
Header:=xlGuess, OrderCustom:=1, MatchCase:=False, _
Orientation:=xlTopToBottom
Range("A19").Select
End With
End Sub

Noch ein Problem!
Nach AfterUpdate einer Combobox soll der Wert im Blatt "Data" gesucht werden
wenn nicht gefunden dann eintragen, sortieren und ComboBox erneut einlesen.
Bei Fett bleibt er stehen und sagt die Listeingeschaft kann nicht festgelegt werden.

Sub AufEinheit()
Dim var As Variant
Dim intRow, intLastRow As Integer
Dim txt As String
Dim wks As Worksheet
Set wks = Sheets("Data")
With wks
var = Application.Match(frmStart.ComboB5.Value, Columns(1), 0).End(xlUp).Row+1
intRow = .Cells(Rows.Count, 1).Row + 1
End With
If IsError(var) Then
txt = frmStart.ComboB5.value
With wks
intRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1
.Cells(intRow, 1) = txt
.Range("A:A").Sort _
Key1:=Range("A1"), _
Order1:=xlAscending, _
Header:=xlNo
End With
If txt = "" Then
ActiveCell.Offset(0, 1).Value = txt
End If
frmStart.ComboB5.Clear
frmStart.ComboB5.List = wks.Range("A1").CurrentRegion.Columns(1).Value
For intRow = 0 To frmStart.ComboB5.ListCount - 1
If frmStart.ComboB5.List(intRow) = txt Then Exit For
Next intRow
frmStart.ComboB5.ListIndex = intRow
End If
End Sub

Formatiere Deine Spalte nicht auf Text...
Tino

Hallo,
, eine Textsortierung funktioniert anders wie eine Sortierung nach Zahlen.
Beispiel Text wird von links nach rechts Sortiert und nicht nach dem Wert.
129
13
145
Weil die drei in 13 kleiner als die 4 in 145 ist, kommt die 13 auch vor die 145.
Gruß Tino
AW: Formatiere Deine Spalte nicht auf Text...
Ludmila

Hallo Tino,
die Spalte A muß aber als Text formatiert sein, das heist 1.0 oder 1.1 gibt es den keine Lösung hierzu?
Danke!
Gruß
Ludmila
Parameter DataOption1:
Tino

Hallo,
setze mal beim Sortierbefehl den Parameter DataOption1:=xlSortTextAsNumbers mit ein.
Gruß Tino
AW: Parameter DataOption1:
Ludmila

Funktioniert leider nicht
Gruß
Ludmila
dann mach es über eine Hilfsspalte...
Tino

Hallo,
wo Du die Werte als richtige Zahl darstellst.
Gruß Tino
AW: dann mach es über eine Hilfsspalte...
Ludmila

Ok dann geht es eben nicht anders
Danke!
Schönen Gruß noch und einen guten Rutsch ins neue Jahr
KLudmila
wünsche ich auch, geht schon noch anders...
Tino

Hallo,
, die Daten in einem Array laden und in diesem die Daten sortieren
(prcSort oder prcQuickSort von Nepumuk), danach die Daten wieder zurückschreiben.
Aber ob sich dieser Aufwand lohnt?! Ich würde da lieber mit Hilfspalte arbeiten.
Gruß Tino
hier ein Beispiel mit Hilfspalte...
Tino

Hallo,
kannst Dir mal dieses Beispiel anschauen.
https://www.herber.de/bbs/user/66821.xls
Gruß Tino
AW: hier ein Beispiel mit Hilfspalte...
Ludmila

Danke,Tino