For Each ccell In wsCurBlog.Range("A3:A" & Cells(Rows.Count, 1).End(xlUp).Row)
On Error GoTo not_found2
sapcslook = WorksheetFunction.VLookup(ccell.Offset(, 4), wsML.Range("A3:B" & Cells(Rows.Count, "A").End(xlUp).Row), 2, False)
On Error GoTo 0
If ccell <> "" Then
Set found5 = wsCurBlog.Cells(Rows.Count, 17).End(xlUp).Offset(1, 0)
If Not found5 Is Nothing Then
found5.Offset(, 0).Value = ccell.Offset(, 13).Value / ccell.Offset(, 11).Value
found5.Offset(, 1).Value = ccell.Offset(, 15).Value / ccell.Offset(, 11).Value
found5.Offset(, 2).Value = sapcslook
If ccell.Offset(, 4).Value <> "Not Assigned" And ccell.Offset(, 4).Value < Range("D1").Value Then
found5.Offset(, 3).Value = "Past Schedule"
Else
If ccell.Offset(, 4).Value = "Not Assigned" Then
found5.Offset(, 3).Value = "Unscheduled"
Else
found5.Offset(, 3).Value = WorksheetFunction.IfError(Year(ccell.Offset(, 4).Value), "Unscheduled")
End If
End If
Else
End If
End If
Next ccell
After merging it with the section from my original post it now looks like this,
Set b = wsSAPBL.Range("N5:N" & wsSAPBL.Cells(Rows.Count, 14).End(xlUp).Row)
For Each sdn In b
If IsNumeric(sdn) And sdn.Offset(, -1) <> 0 Then
Set found = wsCurBlog.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
If sdn.Offset(, -7) = "" Then 'for when date is blank (include in current backlog)
found.Value = sdn.Offset(, -11).Value
found.Offset(, 1).Value = sdn.Offset(, -10).Value
found.Offset(, 2).Value = sdn.Offset(, -9).Value
found.Offset(, 3).Value = sdn.Offset(, -8).Value
found.Offset(, 4).Value = "Not Assigned"
found.Offset(, 5).Value = sdn.Offset(, -6).Value
found.Offset(, 6).Value = sdn.Offset(, -5).Value
found.Offset(, 7).Value = sdn.Offset(, -4).Value
found.Offset(, 8).Value = sdn.Offset(, -3).Value
found.Offset(, 9).Value = sdn.Offset(, -2).Value
found.Offset(, 10).Value = sdn.Offset(, -1).Value
found.Offset(, 11).Value = sdn.Value
found.Offset(, 12).Value = sdn.Offset(, 1).Value
found.Offset(, 13).Value = -sdn.Offset(, 2).Value - sdn.Offset(, 3).Value - sdn.Offset(, 4).Value
found.Offset(, 14).Value = -sdn.Offset(, 2).Value
found.Offset(, 15).Value = -sdn.Offset(, 4).Value
found.Offset(, 16).Value = -sdn.Offset(, 2).Value / sdn.Value
found.Offset(, 17).Value = -sdn.Offset(, 4).Value / sdn.Value
found.Offset(, 18).Value = "#N/A"
found.Offset(, 19).Value = "Unscheduled"
Else
If sdn.Offset(, -7) > wsCurBlog.Range("D1").Value Then 'for when date is greater than (include in current backlog)
found.Value = sdn.Offset(, -11).Value
found.Offset(, 1).Value = sdn.Offset(, -10).Value
found.Offset(, 2).Value = sdn.Offset(, -9).Value
found.Offset(, 3).Value = sdn.Offset(, -8).Value
found.Offset(, 4).Value = sdn.Offset(, -7).Value
found.Offset(, 5).Value = sdn.Offset(, -6).Value
found.Offset(, 6).Value = sdn.Offset(, -5).Value
found.Offset(, 7).Value = sdn.Offset(, -4).Value
found.Offset(, 8).Value = sdn.Offset(, -3).Value
found.Offset(, 9).Value = sdn.Offset(, -2).Value
found.Offset(, 10).Value = sdn.Offset(, -1).Value
found.Offset(, 11).Value = sdn.Value
found.Offset(, 12).Value = sdn.Offset(, 1).Value
found.Offset(, 13).Value = -sdn.Offset(, 2).Value - sdn.Offset(, 3).Value - sdn.Offset(, 4).Value
found.Offset(, 14).Value = -sdn.Offset(, 2).Value
found.Offset(, 15).Value = -sdn.Offset(, 4).Value
found.Offset(, 16).Value = -sdn.Offset(, 2).Value / sdn.Value
found.Offset(, 17).Value = -sdn.Offset(, 4).Value / sdn.Value
found.Offset(, 18).Value = WorksheetFunction.IfError(WorksheetFunction.VLookup(sdn.Offset(, -7), wsML.Range("A3:B" & Cells(Rows.Count, "A").End(xlUp).Row), 2, True), "#N/A")
found.Offset(, 19).Value = WorksheetFunction.IfError(Year(sdn.Offset(, -7).Value), "Unscheduled")
Else
' Check orders within prior 14 days of current Sunday
If wsCurBlog.Range("D1").Value - sdn.Offset(, -7) <= 14 And wsCurBlog.Range("D1").Value - sdn.Offset(, -7) >= 0 Then
On Error GoTo not_found4
include = WorksheetFunction.VLookup(sdn.Offset(, -11), wsBOI.Range("L:P"), 5, False)
On Error GoTo 0
If include = "Keep" Then
found.Value = sdn.Offset(, -11).Value
found.Offset(, 1).Value = sdn.Offset(, -10).Value
found.Offset(, 2).Value = sdn.Offset(, -9).Value
found.Offset(, 3).Value = sdn.Offset(, -8).Value
found.Offset(, 4).Value = sdn.Offset(, -7).Value
found.Offset(, 5).Value = sdn.Offset(, -6).Value
found.Offset(, 6).Value = sdn.Offset(, -5).Value
found.Offset(, 7).Value = sdn.Offset(, -4).Value
found.Offset(, 8).Value = sdn.Offset(, -3).Value
found.Offset(, 9).Value = sdn.Offset(, -2).Value
found.Offset(, 10).Value = sdn.Offset(, -1).Value
found.Offset(, 11).Value = sdn.Value
found.Offset(, 12).Value = sdn.Offset(, 1).Value
found.Offset(, 13).Value = -sdn.Offset(, 2).Value - sdn.Offset(, 3).Value - sdn.Offset(, 4).Value
found.Offset(, 14).Value = -sdn.Offset(, 2).Value
found.Offset(, 15).Value = -sdn.Offset(, 4).Value
found.Offset(, 16).Value = -sdn.Offset(, 2).Value / sdn.Value
found.Offset(, 17).Value = -sdn.Offset(, 4).Value / sdn.Value
found.Offset(, 18).Value = "#N/A"
found.Offset(, 19).Value = "Past Schedule"
Else
'No match was found
End If
End If
End If
End If
End If
Next sdn
Doing that I was now only looping through each row once and using fewer time consuming functions. Thanks for pointing that out Norie.
Bookmarks