Inserting this into the ThisWorkbook section might get you close to what you
are looking for (although it does require double-clicking on the header
cells):
Dim rTable As Range
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target
As Range, Cancel As Boolean)
Set rTable = TableRange()
If Target.Row = headerRow Then Call SortByColHeader(Target)
End Sub
Function TableRange() As Range
Dim topLeft As Range
Set topLeft = Range("A1")
topLeft.Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Set TableRange = Selection
End Function
Sub SortByColHeader(r As Range)
rTable.Select
Selection.Sort Key1:=r, Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
'rTable.Cells(1, 1).Select
End Sub
Hope this helped,
Rolf