Excel sortieren von Text/Zahlen

17/09/2008 - 16:06 von Marco | Report spam
Hi

Ich brauche Eure Hilfe mit dem Sortieren von Zahlen in Textfeldern mit
unterschiedlichem format!

Also ein Beispiel:

1
5.1
1.2
10.2.1
1.2.3
2
2.1.5
3
3.2.1.1
3.3.1.1.1

Und so sollte es sortiert werden:

1
1.2
1.2.3
2
2.1.5
3
3.2.1.1
3.3.1.1.1
5.1
10.2.1

Ich kann die ja nicht einfach zu Zahlen formatieren, weil dann aus 10.6.1
eine Zahl 37052 wird :-(
Wie könnte man das lösen? Geht das nur per VB?

Vielen Dank
Gruss Marco
 

Lesen sie die antworten

#1 Claus Busch
17/09/2008 - 17:44 | Warnen spam
Hallo Marco,

Am Wed, 17 Sep 2008 16:06:08 +0200 schrieb Marco:

Ich brauche Eure Hilfe mit dem Sortieren von Zahlen in Textfeldern mit
unterschiedlichem format!

Also ein Beispiel:

1
5.1
1.2
10.2.1
1.2.3
2
2.1.5
3
3.2.1.1
3.3.1.1.1



das folgende Makro schreibt dir in die Zelle rechts daneben eine Zahl.
Du kannst dann nach dieser Hilfsspalte aufsteigend sortieren (Bereich
musst du noch anpassen und eventuell neben deinem Bereich eine neue
leere Spalte einfügen. Funktioniert auch nur für 5 Gliederungsebenen,
wie in deinem Beispiel.):
Sub Sortierspalte()

Dim rngZelle As Range
Dim intLànge As Integer
Dim i As Integer
Dim myarr As Variant

'Hier Bereich anpassen
For Each rngZelle In Range("A2:A11")
intLànge = Len(rngZelle) - Len(WorksheetFunction _
.Substitute(rngZelle, ".", ""))
Select Case intLànge
Case 0
rngZelle.Offset(0, 1) = rngZelle * 10 ^ 4
Case 1
ReDim myarr(intLànge)
myarr = Split(rngZelle, ".")
rngZelle.Offset(0, 1) = myarr(0) * 10 ^ 4 + myarr(1) * 10 ^
3
Case 2
ReDim myarr(intLànge)
myarr = Split(rngZelle, ".")
rngZelle.Offset(0, 1) = myarr(0) * 10 ^ 4 + myarr(1) * 10 ^ 3 _
+ myarr(2) * 10 ^ 2
Case 3
ReDim myarr(intLànge)
myarr = Split(rngZelle, ".")
rngZelle.Offset(0, 1) = myarr(0) * 10 ^ 4 + myarr(1) * 10 ^ 3 _
+ myarr(2) * 10 ^ 2 + myarr(3) * 10 ^ 1
Case 4
ReDim myarr(intLànge)
myarr = Split(rngZelle, ".")
rngZelle.Offset(0, 1) = myarr(0) * 10 ^ 4 + myarr(1) * 10 ^ 3 _
+ myarr(2) * 10 ^ 2 + myarr(3) * 10 ^ 1 + myarr(4)
End Select
Next

End Sub


Mit freundlichen Grüssen
Claus Busch
Win XP Prof SP2 / Vista Ultimate
Office 2003 SP2 / 2007 Ultimate

Ähnliche fragen