Option Explicit
Sub DoSomething()
Dim LR As Long
Dim R1 As Integer
Dim LowM2, LowM1, LowP1, LowP2
Dim HighM2, HighM1, HighP1, HighP2
Dim MarkedRed ' Tracker for column H
Dim MarkedGreen ' Tracker for column G
' Setup worksheet
Range("G1").Value = "High" 'B leg High header
Range("H1").Value = "Low" 'A leg Low header
Range("I1").Value = "Diff" 'b-a or a-b difference header
Range("J1").Value = "Fini (w/.236)" 'Finial output (((a-b)+b)*.236)
' Ini Variables & Fill Static Vars.
MarkedRed = 0: MarkedGreen = 0
LR = ActiveSheet.UsedRange.Rows.Count
' ** START - Main Routine **
For R1 = 4 To LR
'
'Min Value Calculation // A leg Low location
'
LowM2 = (Range("D" & R1) - Range("D" & R1 - 2))
LowM1 = (Range("D" & R1) - Range("D" & R1 - 1))
LowP1 = Range("D" & R1 + 1) - Range("D" & R1)
LowP2 = Range("D" & R1 + 2) - Range("D" & R1)
'
'Max Value Calculation // B leg High location
'
HighM2 = (Range("C" & R1) - Range("C" & R1 - 2))
HighM1 = (Range("C" & R1) - Range("C" & R1 - 1))
HighP1 = Range("C" & R1 + 1) - Range("C" & R1)
HighP2 = Range("C" & R1 + 2) - Range("C" & R1)
'
' Leg LOW validator
'
If LowM2 < -0.15 And LowM1 < 0.08 And LowP1 > 0.05 And LowP2 > -0.1 Then
Range("H" & R1).Value = (Range("D" & R1))
Range("D" & R1).Interior.Color = vbRed
'
' record cell value for later calculations
MarkedRed = Range("D" & R1)
'
' check other tracking marker to see if
' calcuations are to be done at this time
If MarkedGreen <> 0 Then
'
' Put answer in Column I.
Range("I" & R1).Value = (MarkedRed - MarkedGreen) + MarkedRed
Range("J" & R1).Value = (((MarkedRed - MarkedGreen) + MarkedRed) * 0.236)
'
' RESET trackers for next group of numbers (if any)
MarkedRed = 0: MarkedGreen = 0
ElseIf MarkedGreen = 0 Then
Range("I" & R1).Value = "Cal-Err"
End If
End If
'
' Leg HIGH validator
'
If HighM2 >= -0.2 And HighM1 >= -0.05 And HighP1 < -0.2 And HighP2 < -0.05 Then
Range("G" & R1).Value = (Range("C" & R1))
Range("C" & R1).Interior.Color = vbGreen
'
' record cell value for later calculations
MarkedGreen = Range("C" & R1)
'
' check other tracking marker to see if
' calcuations are to be done at this time
If MarkedRed <> 0 Then
'
' Put answer in Column I.
Range("I" & R1).Value = (MarkedGreen - MarkedRed) + MarkedGreen
Range("J" & R1).Value = (((MarkedGreen - MarkedRed) + MarkedGreen) * 0.236)
'
' RESET trackers for next group of numbers (if any)
MarkedRed = 0: MarkedGreen = 0
ElseIf MarkedRed = 0 Then
Range("I" & R1).Value = "Cal-Err"
End If
End If
Next R1
'
' ** END - Main Routine**
'
MsgBox "Differential Calculations Are Done ", vbOKOnly
End Sub