Hi Darren,
Try the following. Note that the MoveAfterEnter setting will be independent of the coded tab move, which will need to be reset in Offsets in the code below.
Place this in the Worksheet module
Option Explicit
Option Base 1
Private Sub TabOrder()
'Set applicable sheet name
Const TabSheet = "Sheet1"
Dim Limit As Integer, NumPos As Integer
Dim NextPos As String, MyCel As String
Dim MyTO
'Set tab offset for other sheets
If ActiveSheet.Name <> TabSheet Then
ActiveCell.Offset(0, 1).Select
Exit Sub
End If
'Set your cells in desired order
MyTO = Array("A3", "A7", "B5", "C7")
Limit = UBound(MyTO)
MyCel = ActiveCell.Address(0, 0)
'Check for match in array
On Error GoTo LastLine
NumPos = Application.WorksheetFunction.Match(MyCel, MyTO, 0)
'Return to first cell
If NumPos = Limit Then
NextPos = MyTO(1)
Else
NextPos = MyTO(NumPos + 1)
End If
Range(NextPos).Activate
Exit Sub
LastLine:
'Set tab offset if named cell not found
ActiveCell.Offset(0, 1).Select
End Sub
Place this in the WorkBook module
Private Sub Workbook_Open()
Application.OnKey "{TAB}", "TabOrder"
End Sub