Selected Answer
Zac
Assuming you want to move to the next empty cell in column A (after you've chnaged or entered text in column 7 = G), then you can add a second Intersect test to the same event macro (see section in bold below) to check if column G was changed. If so, I've used a new variable (undeclared), LastRwA, to see which last row in A contains something then used a Range statement to select the cell below.
Note that I changed my previous Cells () approach to move to column C (so that the macro uses a consistent method of addressing cells)- see the second bold line below.
The first bold line below sets Application.EnableEvents to False (so that this event macro isn't triggered again when it changes column C or anything else you get it to do). That gets turned back on at the end (otherwise such macros won't work).
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
Application.EnableEvents = False ' prevent macro changes retriggering this macro
If Not Intersect(Target, Range("A2:A1000")) Is Nothing Then
With Target(1, 2)
.Value = Now
.EntireColumn.AutoFit
End With
Range("C" & Target.Row).Select ' go to row C
End If
' second test plus actions
If Not Intersect(Target, Range("G2:G1000")) Is Nothing Then
LastRwA = Range("A" & Rows.Count).End(xlUp).Row ' get the last used row in column A
Range("A" & LastRwA + 1).Select
End If
Application.EnableEvents = True 're-enable events
End Sub
Alternatively (and especially if you have data in rows below), you could replace both lines after the
If... in the second test with:
Target.Offset(1, -6).Select
Hope this makes sense and works for you.