Benn,
Rec'd your file, got it to work and am sending it back
to you directly.
What you were trying to do was to use the Worksheet_Change
Event on one sheet to sort a table on another sheet.
The following code was placed on your "Scores" sheet:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("B5:W15")) Is Nothing Then
Sort_12A
End If
If Not Intersect(Target, Range("B21:Y32")) Is Nothing Then
Sort_12B
End If
If Not Intersect(Target, Range("B38:O44")) Is Nothing Then
Sort_11A
End If
If Not Intersect(Target, Range("B50:S58")) Is Nothing Then
Sort_11B
End If
End Sub
The range addresses above correspond to the ranges that you're
making changes in. When a change is made within one of those
ranges, the associated sub (Sort_12A, Sort_12B, etc.) will be
run.
Those subs appear in a regular module. I probably could have made
this more concise, but it'll work. If you change any of these ranges,
you'll have to change the range references in the code.
Here's the code in those modules:
Option Explicit
Sub Sort_12A()
Application.ScreenUpdating = False
Worksheets("Tables").Activate
With Worksheets("Tables")
.Range("A3:H12").Sort Key1:=Range("H3"), _
Order1:=xlDescending, _
Header:=xlGuess, _
OrderCustom:=1, _
MatchCase:=False, _
Orientation:=xlTopToBottom
End With
Worksheets("Scores").Activate
Application.ScreenUpdating = True
End Sub
Sub Sort_12B()
Application.ScreenUpdating = False
Worksheets("Tables").Activate
With Worksheets("Tables")
.Range("A16:H27").Sort Key1:=Range("H16"), _
Order1:=xlDescending, _
Header:=xlGuess, _
OrderCustom:=1, _
MatchCase:=False, _
Orientation:=xlTopToBottom
End With
Worksheets("Scores").Activate
Application.ScreenUpdating = True
End Sub
Sub Sort_11A()
Application.ScreenUpdating = False
Worksheets("Tables").Activate
With Worksheets("Tables")
.Range("A31:H37").Sort Key1:=Range("H31"), _
Order1:=xlDescending, _
Header:=xlGuess, _
OrderCustom:=1, _
MatchCase:=False, _
Orientation:=xlTopToBottom
End With
Worksheets("Scores").Activate
Application.ScreenUpdating = True
End Sub
Sub Sort_11B()
Application.ScreenUpdating = False
Worksheets("Tables").Activate
With Worksheets("Tables")
.Range("A41:H49").Sort Key1:=Range("H41"), _
Order1:=xlDescending, _
Header:=xlGuess, _
OrderCustom:=1, _
MatchCase:=False, _
Orientation:=xlTopToBottom
End With
Worksheets("Scores").Activate
Application.ScreenUpdating = True
End Sub
Any questions or problems, post back to the ng.
John