212 Aufrufe
Gefragt in SW-Sonstige von
Hallo zusammen,

kann ich eine Teilnehmerliste so einrichten, dass selbst absolut unerfahrene Nutzer sie durch einen Klick auf die Überschrift nach Namen oder Vornamen sortieren lassen können?

Vieeln Dank und Gruß von Klaas

4 Antworten

0 Punkte
Beantwortet von vbastler Mitglied (228 Punkte)

Moin Klaas,

klare Antwort auf Deine Frage: Jein! Denn ein einfacher Klick (wie auf einigen Webseiten/HTML) genügt in XL leider nicht - Du brauchst einen Doppelklick.

Option Explicit

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim sRng1 As String, sRng2 As String, c As Integer
Cancel = True

If Target.Row = 1 Then
c = Target.Column
Select Case c
    Case 1
        sRng1 = "A:A"   'sortiert nach Spalte A
    Case 2
        sRng1 = "B:B"   'sortiert nach Spalte B
End Select
sRng2 = "A:B"           'sortiert beide Spalten

    ActiveWorkbook.Worksheets("Tabelle1").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Tabelle1").Sort.SortFields.Add2 Key:=Range(sRng1 _
        ), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortTextAsNumbers
    ActiveWorkbook.Worksheets("Tabelle1").UsedRange.Select
    With ActiveWorkbook.Worksheets("Tabelle1").Sort
        .SetRange Range(sRng2)
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .Apply
    End With
    ActiveWorkbook.Worksheets("Tabelle1").Cells(1, c).Select
End If
End Sub

Diesen Code kopierst Du in Dein Arbeitsblatt. Wenn Deine Vor/Nachnamen nicht in den Spalten A & B stehen, musst Du ihn natürlich anpassen. Doppelklicks werden nur in der Überschriftenzeile verarbeitet.

Viel Spaß damit!

d'r Bastler von den VBAsteleien.de

0 Punkte
Beantwortet von
Hallo vbastler,

ich war ein paar Tage unterwegs, daher erst jetzt meine Reaktion. Erst einmal herzlichen Dank.

Ich habe den Code insd Arbeitsblatt kopiert und kann ihn mit F7 aufrufen.

Diesen Teil habe ich angepasst, da die zu sortierenden Spalten die Spalten B und C sind.

Case 1
        sRng1 = "A:A"   'sortiert nach Spalte A
    Case 2
        sRng1 = "B:B"   'sortiert nach Spalte B
End Select
sRng2 = "A:B"           'sortiert beide Spalten

Ich habe die Datei auch gespeichert - aber ich kann den Sortiervorgang noch nicht auslösen. Was habe ich wohl übersehen?

Viele Grüße

Klaas
0 Punkte
Beantwortet von vbastler Mitglied (228 Punkte)
Nur so als Idee: Dein End Select steht in der falschen Zeiel ...
0 Punkte
Beantwortet von
Erst einmal danke für den weiteren Tipp. Ich habe von VBA keine Ahnung und hatte den Code kopiert und sehe nicht, in welcher Zeile End select denn stehen sollte.
...