Wie kann man eine Exceltabelle automatisch sortieren?

3 Antworten

Ohne Makro, nur mit Formeln geht's auch (wenn die Tabelle nicht zu riesig ist):

In der Tabelle mit den Ergebnissen in einer zusätzlichen Spalte, ganz vorn als 1. Spalte (Kann auch ausgeblendet werden) per Formel den "Rang" ermitteln.

In der Tabelle, die sich automatisch sortieren soll, in der 1. Spalte: 1, 2, 3, 4,.. eingeben und alle weiteren Spalten per sverweis-Formel automatisch füllen lassen in Abhängigkeit vom Rang in der Ergebnis-Tabelle.
Die sverweis-Formel sucht jeweils in der Eingabetabelle die Zeile mit dem entspr. Rang und übernimmt die Daten aus dieser Zeile.

Du könntest über den Autofilter sortieren. Nach Eingabe eines neuen Punktewerts drückst du dann Strg + Alt + l, um die Liste zu aktualisieren.

Start → Bearbeiten → Sortieren und Filtern → Benutzerdefiniertes Sortieren...

Bei mir geschieht bei der Aktualisierung nichts...

0

Hallo,

ja, ein Makro wäre der richtige weg dazu. Da du offenbar bereits ein Makro gefunden hast, es aber nicht an deine Situation angepasst bekommst, solltest du uns zumindest den Code des schon vorhandenen Makro zur Verfügung stellen. Dann muss hier keiner ein komplett neues schreiben.

LG, Chris

Private Sub Worksheet_Change(ByVal Target As Range)

'Beschränken der Makroausführung auf den Bereich A1 bis A100
If Not Application.Intersect(Target, Range("A1:A100")) Is Nothing Then
    
    'Bereich, auf den sich die Sortierung auswirken soll
    Range("A1:E100").Select

    'Sortierkriterien
    Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, _
    Header:=xlGuess, OrderCustom:=1, MatchCase:=False, _
    Orientation:=xlTopToBottom

    'Zelle A1 auswählen
    Range("A1").Select

End If

End Sub

0
@eleleleeee

Hallo,

leider ist mir jetzt noch nicht ganz klar, wo hier das Problem liegt, den Code umzuschreiben. Ich bin selbst nicht besonders gut im VBA, aber hier sind doch nur Bereiche anzupassen und halt nochmal das gleiche für einen 2. Bereich zu machen, oder übersehe ich da was?


Private Sub Worksheet_Change(ByVal Target As Range)

If Not Application.Intersect(Target, Range("A20:A24")) Is Nothing Then

Range("A20:F24").Select
Selection.Sort Key1:=Range("A20"), Order1:=xlDescending, _
Header:=xlGuess, OrderCustom:=1, MatchCase:=False, _
Orientation:=xlTopToBottom

Range("A20").Select

ElseIf Not Application.Intersect(Target, Range("A28:A32")) Is Nothing Then

Range("A28:F32").Select
Selection.Sort Key1:=Range("A28"), Order1:=xlDescending, _
Header:=xlGuess, OrderCustom:=1, MatchCase:=False, _
Orientation:=xlTopToBottom

Range("A28").Select

End If

End Sub
0

Was möchtest Du wissen?