Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("A1:B1")) Is Nothing Then
Range("A1:B" & [A65000].End(xlUp).Row).Sort Key1:=Target.Offset(1, 0), _
Order1:=xlAscending, Header:=xlGuess
End If
End Sub
Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Address = "$B$2" Then
Range("A1:B16").Sort Key1:=Range("B2"), Order1:=xlAscending, Header:=xlYes
Cancel = True
End If
End Sub