Try the attached version.
I have changed the code so that the Check1 sub is called when cell C2 on Sheet1 changes.
Code in Sheet1 Worksheet Object Module is
Code
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [c2]) Is Nothing Then check1
End Sub
I also redid your Check1 code, it is now
Code
Sub check1()
Dim lRow As Long
Application.ScreenUpdating = 0
With Sheets("Sheet1").Cells(1).CurrentRegion
With .Offset(4).Resize(.Rows.Count - 4, 16)
.Sort .Columns(1)
End With
x = .Value2
End With
With Sheets("race1")
If .[a61] = vbNullString Then
lRow = 61
Else
lRow = .Cells(.Rows.Count, 1).End(xlUp).Row + 15 - .[c20]
End If
.Cells(lRow, 1).Resize(UBound(x, 1), UBound(x, 2)) = x
.Activate
ActiveWindow.ScrollColumn = 1
ActiveWindow.ScrollRow = lRow
End With
End Sub
Display More