AW: Sortieren an Hand mehrerer Kriterien
19.09.2014 07:33:02
Rene
Hallo Adis,
danke für deine Antwort.
Habe bisschen im Internet geschaut und folgendes gefunden:
Option Explicit
Sub Sortieren()
Dim intZeile%, strSpalte$, intLastRow%, strSortRange$
Dim ceVorname$, ceNachname$, ceID$, ceGeb$
On Error GoTo ende
intZeile = ActiveSheet.Range("A:Z").Find(What:="Nachname").Row + 1
strSpalte = Chr(ActiveSheet.Range("A:Z").Find(What:="Nachname").Column + 64)
intLastRow = Cells(Rows.Count, 1).End(xlUp).Row
strSortRange = "$A$" & intZeile & ":$" & strSpalte & "$" & intLastRow
ceVorname = Chr(ActiveSheet.Range("A:Z").Find(What:="Vorname").Column + 64) & intZeile
ceNachname = Chr(ActiveSheet.Range("A:Z").Find(What:="Nachname").Column + 64) & intZeile
ceID = Chr(ActiveSheet.Range("A:Z").Find(What:="ID").Column + 64) & intZeile
ceGeb = Chr(ActiveSheet.Range("A:Z").Find(What:="Geb").Column + 64) & intZeile
Application.ScreenUpdating = False
With ActiveSheet
Range(strSortRange).Sort _
Key1:=.Range(ceGeb), Order1:=xlAscending, Header:=xlGuess
Range(strSortRange).Sort _
Key1:=.Range(ceNachname), Order1:=xlAscending, _
Key2:=.Range(ceVorname), Order2:=xlAscending, _
Key3:=.Range(ceID), Order3:=xlAscending, Header:=xlGuess
End With
ende:
Application.ScreenUpdating = True
End Sub
Hab das gestern mal kurz getestet und es scheint recht gut zu funktionieren.
Die Spalten die sortiert werden sollen sind beschriftet mit
Nachname
Vorname
ID
Geburtsdatum ist jetzt nicht wirklich tragisch.
An der Sortierung bin ich gerade bisschen am testen, da einige Beiträge noch nicht
so sortiert werden wie sie sollen. Jedoch denke ich das ich einfach nur an der Reihenfolge
bisschen arbeiten muss. Nachdem der Name sortiert wurde, soll Vorname und anschließend als
letztes ID kommen. Geburtsdatum wäre gut, ist aber nicht tragisch wenn es nicht dabei ist.
Sofern du vielleicht noch eine andere Idee hättest, würde ich das auch gerne mal ausprobieren.
Ansonsten bleib ich erst einmal bei dem oben stehenden Code.
Danke für die Hilfe.