I am guessing from "Hunting and pecking thru info to build macros to enhance the efficiency of all of the jobs done at a video post-production facility" that your knowledge of VBA is limited and you do not know what functionality might be relevant. This answer is an introduction to the event routines which I believe are what you need.
Events occur: workbook opened or closed, worksheet added, cell value changed, etc. For many of these events, you can create a routine to be called when that event occurs.
To demonstrate these routines, I have created a workbook and a worksheet "Work". I have set 12 cells to numeric values and set R12 to their sum. I have set range J2:O25 to the numbers 1 to 144. This is a larger range than you want but this has no effect on the principle.
In the code below, I have used two event routines: Workbook_Open and Workbook_SheetChange.
In Workbook_Open, I save the original value of R12. In Workbook_SheetChange, If the value of R12 has changed and if J2:O25 contains the new value, I move the cursor to it.
If I understand your question, this is the functionality you seek. If not, I hope this answer will help you to ask a better, more detailed question.
You must place this statement in a module:
Public R12Last As Variant
You must place the following code in ThisWorkbook which you will find in Microsoft Excel Objects under the sheets.
Option Explicit
Sub Workbook_Open()
' This routine is called when the workbook is opened.
With Worksheets("Work")
' Save the value of cell R12 when the workbook opens.
R12Last = .Range("R12").Value
End With
End Sub
Private Sub Workbook_SheetChange(ByVal WSht As Object, ByVal ChgRng As Range)
' This routine is called when cells in any worksheet are changed by the
' user or by an external link.
' WSht is the worksheet within which cells have changed.
' ChgRng can be a single cell or a range.
' For this application, we are not interested in the cell that has changed.
' We want to know if the change affected R12.
Dim SearchRng As Range
Dim FoundRng As Range
With Worksheets("Work")
If R12Last <> .Range("R12").Value Then
' Cell R12 has changed
R12Last = .Range("R12").Value ' Record the new value for next time
' I have a larger range containing the values that might be in R12
' but the principle is the same. You will need to change this to M31:M40.
Set SearchRng = .Range("J2:O25")
' Look for the new value of R12 in SearchRng.
' "What" is the value to be found. "After" must be within the search
' range. "After" is the last cell to be searched. I have set
' SearchDirection to xlNext and SearchOrder to xlByRows so the Find will
' check cells starting with J2.
' Look Find up in VBA Help for a fuller description.
Set FoundRng = SearchRng.Find(What:=R12Last, After:=Range("O25"), _
LookIn:=xlValues, LookAt:=xlWhole, _
SearchOrder:=xlByRows, _
SearchDirection:=xlNext)
If FoundRng Is Nothing Then
' The value of R12 has not been found in the search range.
' Add code to handle this situation
Call MsgBox("Target value not found", vbOKOnly)
Else
' Make the cell with the matching value the active cell.
FoundRng.Select
End If
End If
End With
End Sub
VBAcan do this. - andy holaday