Not sure, but it seems that you're always making ActiveCell column A in whatever the activeRow is
activeRow = ActiveCell.Row
Cells(activeRow, 1).Select
If ActiveCell.Column <> 1 Then
I'm guessing you wanted something like this
Option Explicit
Sub CellPost()
Dim r As Range
Dim val As String
Dim activeRow As Long
Sheets("Gunsmoke").Select
If ActiveCell.Column <> 1 Then
MsgBox " Select a Lot Number from Column A "
Exit Sub
End If
If ActiveCell.Interior.Color = vbYellow Then
MsgBox " This Lot was already Invoiced"
Exit Sub
End If
Set r = ActiveCell
Sheets("Parts&Labor").Unprotect
Sheets("Parts&Labor").Range("A18:E22").Locked = False
Sheets("Parts&Labor").Range("E3").Value = Now()
' MORE POSTING IS DONE HERE
r.Interior.Color = vbYellow
r.Offset(0, 8).Value = Now()
' MORE POSTING IS DONE HERE
End Sub