The find is finding the value, the code is backwards.
Try this code: It searches the usedrange, not the entire 16,384 rows. 
Set pnfind = Cells.Find(What:=varPartNumber, After:=ActiveCell, LookIn:=xlValues, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False)
'MsgBox pnfind.Address 'for testing
If Not pnfind Is Nothing Then
Dim LastRow As Long
Dim iRowCount As Integer
With ActiveSheet.UsedRange
LastRow = .Rows(.Rows.Count).Row
End With
iRowCount = 1
Do Until iRowCount = LastRow
If Selection.Value <> varOperNo Then 'looks for oper no saved form before
Selection.Offset(1, 0).Activate
End If
iRowCount = iRowCount + 1
Loop
Else
MsgBox "The part number " & varPartNumber & " does not exist"
End If
This message box
shows the address of the "pnfind" variable.
This leads to the next error.
ActiveCell.Offset(6, 0).Activate 'moves to new work center number and
'copies cell value
Selection.Copy _
Destination:=SFCTimesNew(x, 12)
The code in Red will fail because there is no value 6 rows down.
Perhaps you can explain what needs to be copied from which cells to which cells.
Seems like you are changing worksheet row/column formats (headings etc.)?
Bookmarks