1. Does your 'real' spreadsheet look like this, starting in row 1 with headers, and Cols B, D, M, and N in the same position?
Capture.JPG
2. If, not then you might have to adjust cells below. It just loops each row from row 2 to the last data row and checks and enters values on that row
Option Explicit
Sub ORM()
Dim rRow As Range, rData As Range
Dim rowData As Long
Application.ScreenUpdating = False
Set rData = Worksheets("Approvals").Cells(1, 1).CurrentRegion
For rowData = 2 To rData.Rows.Count
With rData.Rows(rowData)
'(2) = column B on 'rowData'
If .Cells(2).Value <> "Risk Analysis" Then GoTo NextRow
'(13) = column M on 'rowData'
If .Cells(13).Value < DateSerial(2007, 3, 20) Then GoTo NextRow
'(14) = column N on 'rowData', (4) = column D
.Cells(14).Value = IIf(.Cells(4).Value = "person name", "ORM Approved", "not ORM Approved")
End With
NextRow:
Next
Application.ScreenUpdating = True
End Sub