nahezu jede HTML-Tabelle bei Wikipedia kann es: Ein Doppel/Klick auf den Spaltenkopf und die Daten werden nach diesem sortiert. Nur in XL muss man dafür ein bisschen Aufwand betreiben, der kompliziert wird, will man auch Nullwerte einbeziehen. Hier ist das entsprechende Doppelklick-Snippet:
Code: Alles auswählen
Option Explicit
Public isBottomUp As Boolean 'für A/Descending
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim r As Integer, c As Integer, rng As Range, cell As Range
Cancel = True 'deaktiviert Target
r = Cells(Rows.Count, 1).End(xlUp).Row 'letzte belegte Zeile
c = Cells(2, Columns.Count).End(xlToLeft).Column 'letzte belegte Spalte
Set rng = Range(Cells(3, 1), Cells(r, c)) 'Setzt den Range über alle belegten Spalten ohne die Zeile 1 & 2
With ActiveSheet
For Each cell In rng.Cells 'ersetzt Nullwerte temporär durch -1
If cell = "" Then cell = -1
Next
If Target.Row <= 2 And Target.Column <= c Then 'reagiert nur auf DBlClk in den belegten Spalten und den ZEilen 1 & 2
With rng
If Not isBottomUp Then 'sortiert absteigend
.Sort Key1:=.Range(Target.Address), Order1:=xlDescending, Header:=xlNo
isBottomUp = True
Else 'sortiert aufsteigend
.Sort Key1:=.Range(Target.Address), Order1:=xlAscending, Header:=xlNo
isBottomUp = False
End If
End With
End If
For Each cell In rng.Cells 'er setzt die temporären -1 durch Nullwerte
If cell = -1 Then cell = ""
Next
End With
End Sub
Viel Spaß damit! Schöne Grüße