Does this do it?
Sub YearlyExtract()
Dim AFTE As Single
Dim BlnProjExists As Boolean
Dim ColDates As New Collection
Dim DeO As Worksheet
Dim EH As Worksheet
Dim Flex As String
Dim i As Long
Dim IND As Worksheet
Dim j As Long
Dim JRole As String
Dim LastRow As Long
Dim m As Long
Dim OVH As Worksheet
Dim PCode As String
Dim PDate As Date
Dim PLOB As String
Dim PRO As Worksheet
Dim Project As String
Dim RLOB As String
Dim RngDates As Range
Dim Task As String
Application.ScreenUpdating = False
Const StartRow As Long = 8
Set DeO = Sheets("Desired Output")
For i = 4 To DeO.Cells(StartRow - 1, Columns.Count).End(xlToLeft).Column
m = m + 1
ColDates.Add m, DeO.Cells(StartRow - 1, i).Text
Next i
With Sheets("All Data").Range("F7")
For i = 1 To .CurrentRegion.Rows.Count - 1
PLOB = .Offset(i, -4) ' Column B
RLOB = .Offset(i, -3) ' Column C
JRole = .Offset(i, -1) ' Column E
Project = .Offset(i, 0) ' Column F
Task = .Offset(i, 3) ' Column I
PDate = .Offset(i, 4) ' Column J
AFTE = .Offset(i, 8) ' Column N
Flex = .Offset(i, 9) ' Column O
If InStr(.Offset(i, 0), "TM - DIR") > 0 And InStr(.Offset(i, -1), "BAS") = 0 And _
RLOB = "C&R" And Flex = "Yes" And AFTE > 0 And _
.Offset(i, 4).Value >= Application.Min(DeO.Rows(7)) Then
RLOB = .Offset(i, -3)
JRole = .Offset(i, -1)
Task = .Offset(i, 3)
With DeO.Range("B7")
If .CurrentRegion.Rows.Count = 1 Then
.Offset(1, 0) = Task
.Offset(1, 1) = RLOB
j = 1
Else
BlnProjExists = False
For j = 1 To .CurrentRegion.Rows.Count - 1
If .Offset(j, 0) = Task And .Offset(j, 1) = RLOB Then
BlnProjExists = True
Exit For
End If
Next j
If BlnProjExists = False Then
.Offset(j, 0) = Task
.Offset(j, 1) = RLOB
End If
End If
On Error Resume Next
m = ColDates(Format(PDate, "mmm yy"))
If Err = 0 Then .Offset(j, m + 1) = .Offset(j, m + 1) + AFTE
On Error GoTo 0
End With
End If
Next i
End With
End Sub