![]() |
Betrifft: ohne Vornamen sortieren
von: Helmut
Hallo Excel-Profis,
wie kann ich eine Spalte nach Nachnamen sortieren, obwohl zuerst der abgekürzte Vorname in den Zellen steht?
z.B. so sehen meine Einträge aus:
H. Oberle
Ti. Müller
G. Gerstner
Sch. Kastner
usw.
Vielen Dank im voraus.
Gruß Helmut
![]() |
Betrifft: AW: ohne Vornamen sortieren
von: Reinhard
Geschrieben am: 24.07.2008 14:42:30
Hi Helmut,
Daten--Text in Spalten, nach Leerzechen trennen, dann nach der reinen Nachnamensspalte sortieren.
Gruß
Reinhard
![]() |
Betrifft: AW: ohne Vornamen sortieren
von: Helmut
![]() |
Betrifft: AW: ohne Vornamen sortieren
von: Klaus M.vdT.
Geschrieben am: 24.07.2008 15:25:36
Moin Helmut,
Ist das erste Leerzeichen von links ein definitves Kriterium für die Trennung von Vor - und Nachnamen?
Ich würd mir einmalig eine Spalte mit der Formel =TEIL(A2;FINDEN(" ";A2)+1;9^9) einrichten und immer nach dieser kopieren. Eine reine VBA Lösung währe bestimmt möglich, aber sehr aufwendig.
Wenns gar keine Hilfsspalte sein soll, füg doch die o.g. Formel per VBA in die Spalte IV ein, sortiere nach IV und lösche IV danach wieder ...
Grüße,
Klaus M.vdT.
![]() |
Betrifft: AW: ohne Vornamen sortieren
von: Roland Hochhäuser
Sub TextNurNachLeerzeichen()
Dim rng As Range
For Each rng In Selection
With rng
.Value = Right$(.Value, Len(.Value) - InStr(1, .Value, " "))
End With
Next
End Sub
War´s das?
Gruß
Roland Hochhäuser
![]() |
Betrifft: AW: ohne Vornamen sortieren
von: Helmut
Geschrieben am: 24.07.2008 15:35:19
Hallo Roland,
das ist eine super-Lösung, so habe ich mir das gewünscht.
Wo lernt man solch fortgeschrittenen Code?
Vielen Dank nochmal.
Gruß Helmut
![]() |
Betrifft: AW: ohne Vornamen sortieren
von: chris58
![]() |
Betrifft: AW: ohne Vornamen sortieren
von: Tino
Geschrieben am: 26.07.2008 11:01:15
Hallo,
hier mal eine Möglichkeit.
Dieser Code Erstellt in der letzen Spalte eine Formel um den Namen zu separieren.
Danach wird nach dieser Spalte Sortiert und zum Schluss wird diese Spalte wieder gelöscht.
In diesem Code wird davon ausgegangen, dass die Namen in Spalte A ab Zeile 2 stehen.
Sub Sortiere()
Dim Bereich As Range
Set Bereich = Range("A2", Cells(Rows.Count, 1).End(xlUp)). _
Offset(0, Columns.Count - 1)
Bereich.FormulaR1C1 = _
"=IF(ISERROR(FIND("" "",RC1)),IF(ISERROR(FIND" & _
"(""."",RC1)),"""",RIGHT(RC1,LEN(RC1)-FIND(""."",RC1)" & _
")),RIGHT(RC1,LEN(RC1)-FIND("" "",RC1)))"
Range("2:" & Cells(Rows.Count, 1).End(xlUp).Row).Sort _
Key1:=Cells(2, Columns.Count), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Bereich.ClearContents
Set Bereich = Nothing
End Sub
Gruß Tino
![]() |
Betrifft: AW: ohne Vornamen sortieren
von: chris
![]() |
Betrifft: AW: ohne Vornamen sortieren
von: Tino
Geschrieben am: 26.07.2008 20:07:53
Hallo,
ohne zu testen, sollte so gehen.
Sub Sortiere()
Dim Bereich As Range
Set Bereich = Range("B2", Cells(Rows.Count, 2).End(xlUp)). _
Offset(0, Columns.Count - 2)
Bereich.FormulaR1C1 = _
"=IF(ISERROR(FIND("" "",RC2)),IF(ISERROR(FIND(""."",RC2)),""""," & _
"RIGHT(RC2,LEN(RC2)-FIND(""."",RC2))),RIGHT(RC2,LEN(RC2)-FIND("" "",RC2)))"
Range("2:" & Cells(Rows.Count, 1).End(xlUp).Row).Sort _
Key1:=Cells(2, Columns.Count), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Bereich.ClearContents
Set Bereich = Nothing
End Sub
Bin jetzt auf einer Party, bin erst morgen wieder Online.
Bei Problemen, kann bestimmt auch ein anderer aushelfen.
Gruß Tino
![]() |
Betrifft: AW: ohne Vornamen sortieren
von: chris
![]() |
Betrifft: AW: ohne Vornamen sortieren
von: Tino
Geschrieben am: 27.07.2008 09:50:52
Hallo,
so aber jetzt passt der Code und Sortiert die Namen ab B2 bis zur letzten Zelle in B
Sub Sortiere()
Dim Bereich As Range
Set Bereich = Range("B2", Cells(Rows.Count, 2).End(xlUp)). _
Offset(0, Columns.Count - 2)
Bereich.FormulaR1C1 = _
"=IF(ISERROR(FIND("" "",RC2)),IF(ISERROR(FIND(""."",RC2)),""""," & _
"RIGHT(RC2,LEN(RC2)-FIND(""."",RC2))),RIGHT(RC2,LEN(RC2)-FIND("" "",RC2)))"
Range("2:" & Cells(Rows.Count, 2).End(xlUp).Row).Sort _
Key1:=Cells(2, Columns.Count), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Bereich.ClearContents
Set Bereich = Nothing
End Sub
Gruß Tino
![]() |
Betrifft: AW: ohne Vornamen sortieren
von: Roland Hochhäuser
![]() |