Private Sub Worksheet_Change(ByVal Target As Range)
'Dynamic range is Consultants, sheet is Basis, start of Consultants d.range is G5
Dim r As Range
Set r = Intersect(Target, Range("Consultants"))
If r Is Nothing Or Target.Count > 1 Then Exit Sub
'This bit sorts first column
With Sheets("Basis")
.Range("Consultants").Sort Key1:=.Range("g5"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End With
End Sub