Currently this portion of my code takes about 15-20 minutes to run. I was wondering if any one had any suggestions on how to increase the speed of this code. Screen updating and display updates would already be set to false and calculations are set to manual. just would like to know if there is a way to replace the IF Else commands with something that will accomplish the same results quicker.

thanks, s4

Set a = wsSAPBL.Range("C5:C" & wsSAPBL.Cells(Rows.Count, 5).End(xlUp).Row)

For Each sdnfix In a
    
    If sdnfix.Offset(, 5) = "" Then
    
    Set sdnupdate = sdnfix.Offset(, 5)

        sdnupdate.Value = WorksheetFunction.VLookup(sdnfix.Offset(, 16), wsLu.Range("B3:D329"), 2, False)
        sdnupdate.Offset(, 1).Value = WorksheetFunction.VLookup(sdnfix.Offset(, 16), wsLu.Range("B3:D329"), 3, False)
    Else
    'do nothing
    End If
Next sdnfix

'Move relevant SAPBLOG data to Current BackLog tab


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
    
    Else
    
    If sdn.Offset(, -7) > wsCurBlog.Range("D1").Value Then 'for when date is greater than D1 (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
    
    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
    
    Else
        'No match was found
    End If
    End If
    End If
    End If
    End If

Next sdn