Just an FYI
part of the problem is this portion of code:
    Do Until Selection.Value = varOperNo        'looks for oper no saved form before
        Selection.Offset(1, 0).Activate
    Loop
Once you get to the end of the list of values, there will not be any match to varOperNo. The loop will continue to the last row, where you try to offset to a row that doesnt exist.