Working on an automatic macro that needs to print out a value if the input data matches certain criteria. The problem I am running into is it gets stuck in a infinite loop and wont go to the next line. I am new to doing loops so any advise or help is welcome. If I try to exit the for it tells me it can't identify the if statement for the next else if.
Update: I have cleaned up the code per suggestions. I added in the .end(x1down) but i get an application-defined or object-defined error and when i use .end(x1down).row I get for each may only iterate over a collection object or an array
I cannot post images yet so i uploaded them to imgur here is the link this shows example of input data and chart data is pulled from https://i.stack.imgur.com/pJxUB.jpg
Sub MonthCalc()
Dim seat As Range
Dim cfdp As Integer
Dim si As Range
Dim eqp As Range
Dim leg As Range
Dim result As String
For Each seat In Range("e2").End(x1down).Row
If seat.Value = 2 Then
For Each si In Range("c2").End(x1down)
If si.Value >= 0 And si.Value <= 359 Then
For Each leg In Range("f2").End(x1down)
If leg.Value = "1" Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("b5").Value
ElseIf leg.Value = "2" Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("c5").Value
ElseIf leg.Value = "3" Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("d5").Value
ElseIf leg.Value = "4" Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("e5").Value
ElseIf leg.Value = "5" Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("f5").Value
ElseIf leg.Value = "6" Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("g5").Value
ElseIf leg.Value = "7" Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("h5").Value
End If
Range("g:g") = cfdp
Next leg
ElseIf si.Value >= 400 And si.Value <= 459 Then
For Each leg In Range("f2").End(x1down)
If leg.Value = "1" Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("b6").Value
ElseIf leg.Value = "2" Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("c6").Value
ElseIf leg.Value = "3" Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("d6").Value
ElseIf leg.Value = "4" Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("e6").Value
ElseIf leg.Value = "5" Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("f6").Value
ElseIf leg.Value = "6" Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("g6").Value
ElseIf leg.Value = "7" Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("h6").Value
End If
Range("g:g") = cfdp
Next leg
ElseIf si.Value >= 500 And si.Value <= 559 Then
For Each leg In Range("f2").End(x1down)
If leg.Value = "1" Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("b7").Value
ElseIf leg.Value = "2" Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("c7").Value
ElseIf leg.Value = "3" Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("d7").Value
ElseIf leg.Value = "4" Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("e7").Value
ElseIf leg.Value = "5" Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("f7").Value
ElseIf leg.Value = "6" Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("g7").Value
ElseIf leg.Value = "7" Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("h7").Value
End If
Range("g:g") = cfdp
Next leg
ElseIf si.Value >= 600 And si.Value <= 659 Then
For Each leg In Range("f2").End(x1down)
If leg.Value = "1" Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("b8").Value
ElseIf leg.Value = "2" Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("c8").Value
ElseIf leg.Value = "3" Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("d8").Value
ElseIf leg.Value = "4" Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("e8").Value
ElseIf leg.Value = "5" Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("f8").Value
ElseIf leg.Value = "6" Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("g8").Value
ElseIf leg.Value = "7" Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("h8").Value
End If
Range("g:g") = cfdp
Next leg
ElseIf si.Value >= 700 And si.Value <= 1159 Then
For Each leg In Range("f2").End(x1down)
If leg.Value = "1" Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("b9").Value
ElseIf leg.Value = "2" Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("c9").Value
ElseIf leg.Value = "3" Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("d9").Value
ElseIf leg.Value = "4" Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("e9").Value
ElseIf leg.Value = "5" Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("f9").Value
ElseIf leg.Value = "6" Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("g9").Value
ElseIf leg.Value = "7" Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("h9").Value
End If
Range("g:g") = cfdp
Next leg
ElseIf si.Value >= 1200 And si.Value <= 1259 Then
For Each leg In Range("f2").End(x1down)
If leg.Value = "1" Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("b10").Value
ElseIf leg.Value = "2" Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("c10").Value
ElseIf leg.Value = "3" Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("d10").Value
ElseIf leg.Value = "4" Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("e10").Value
ElseIf leg.Value = "5" Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("f10").Value
ElseIf leg.Value = "6" Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("g10").Value
ElseIf leg.Value = "7" Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("h10").Value
End If
Range("g:g") = cfdp
Next leg
ElseIf si.Value >= 1300 And si.Value <= 1659 Then
For Each leg In Range("f2").End(x1down)
If leg.Value = "1" Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("b11").Value
ElseIf leg.Value = "2" Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("c11").Value
ElseIf leg.Value = "3" Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("d11").Value
ElseIf leg.Value = "4" Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("e11").Value
ElseIf leg.Value = "5" Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("f11").Value
ElseIf leg.Value = "6" Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("g11").Value
ElseIf leg.Value = "7" Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("h11").Value
End If
Range("g:g") = cfdp
Next leg
ElseIf si.Value >= 1700 And si.Value <= 2159 Then
For Each leg In Range("f2").End(x1down)
If leg.Value = "1" Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("b12").Value
ElseIf leg.Value = "2" Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("c12").Value
ElseIf leg.Value = "3" Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("d12").Value
ElseIf leg.Value = "4" Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("e12").Value
ElseIf leg.Value = "5" Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("f12").Value
ElseIf leg.Value = "6" Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("g12").Value
ElseIf leg.Value = "7" Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("h12").Value
End If
Range("g:g") = cfdp
Next leg
ElseIf si.Value >= 2200 And si.Value <= 2259 Then
For Each leg In Range("f2").End(x1down)
If leg.Value = " 1" Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("b13").Value
ElseIf leg.Value = "2" Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("c13").Value
ElseIf leg.Value = "3" Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("d13").Value
ElseIf leg.Value = "4" Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("e13").Value
ElseIf leg.Value = "5" Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("f13").Value
ElseIf leg.Value = "6" Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("g13").Value
ElseIf leg.Value = "7" Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("h13").Value
End If
Range("g:g") = cfdp
Next leg
ElseIf si.Value >= 2300 And si.Value <= 2359 Then
For Each leg In Range("f2").End(x1down)
If leg.Value = "1" Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("b14").Value
ElseIf leg.Value = "2" Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("c14").Value
ElseIf leg.Value = "3" Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("d14").Value
ElseIf leg.Value = "4" Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("e14").Value
ElseIf leg.Value = "5" Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("f14").Value
ElseIf leg.Value = "6" Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("g14").Value
ElseIf leg.Value = "7" Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("h14").Value
End If
Range("g:g") = cfdp
Next leg
End If
Next si
ElseIf seat.Value = 3 Then
For Each eqp In Range("b:b")
If eqp.Value = 330 Or eqp.Value = 767 Then
For Each si In Range("c2").End(x1down)
If si.Value >= 0 And si.Value <= 559 Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("d18").Value
ElseIf si.Value >= 600 And si.Value <= 659 Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("d19").Value
ElseIf si.Value >= 700 And si.Value <= 1259 Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("d20").Value
ElseIf si.Value >= 1300 And si.Value <= 1659 Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("d21").Value
ElseIf si.Value >= 1700 And si.Value <= 2359 Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("d22").Value
End If
Range("g:g") = cfdp
Next si
ElseIf eqp.Value = 777 Or eqp.Value = 787 Then
For Each si In Range("c2").End(x1down)
If si.Value >= 0 And si.Value <= 559 Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("b18").Value
ElseIf si.Value >= 600 And si.Value <= 659 Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("b19").Value
ElseIf si.Value >= 700 And si.Value <= 1259 Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("b20").Value
ElseIf si.Value >= 1300 And si.Value <= 1659 Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("b21").Value
ElseIf si.Value >= 1700 And si.Value <= 2359 Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("b22").Value
End If
Range("g:g") = cfdp
Next si
End If
Next eqp
ElseIf seat.Value = 4 Then
For Each eqp In Range("b:b")
If eqp.Value = 330 Or eqp.Value = 767 Then
For Each si In Range("c2").End(x1down)
If si.Value >= 0 And si.Value <= 559 Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("e18").Value
ElseIf si.Value >= 600 And si.Value <= 659 Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("e19").Value
ElseIf si.Value >= 700 And si.Value <= 1259 Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("e20").Value
ElseIf si.Value >= 1300 And si.Value <= 1659 Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("e21").Value
ElseIf si.Value >= 1700 And si.Value <= 2359 Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("e22").Value
End If
Next si
ElseIf eqp.Value = 777 Or eqp.Value = 787 Then
For Each si In Range("c2").End(x1down)
If si.Value >= 0 And si.Value <= 559 Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("c18").Value
ElseIf si.Value >= 600 And si.Value <= 659 Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("c19").Value
ElseIf si.Value >= 700 And si.Value <= 1259 Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("c20").Value
ElseIf si.Value >= 1300 And si.Value <= 1659 Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("c21").Value
ElseIf si.Value >= 1700 And si.Value <= 2359 Then
cfdp = ThisWorkbook.Sheets("FAR117Chart").Range("c22").Value
End If
Range("g:g") = cfdp
Next si
End If
Next eqp
End If
Next seat
End Sub