This is an example of why I wanted to see all the code, and where proper code formatting for readability makes it obvious when there is a problem. Your code doesn't take full advantage of indentation. When it's indented, it's easy to see that there is an If missing in the last section. Here is all of the code from that module properly indented. I have highlighted in red where it looks like you meant to have additional code.
Also, you have several If statements with mutually exclusive conditions. It is better to merge them into an If..Elseif..ElseIf structure as shown.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error Resume Next
If Target.Address = "$Q$4" Then
Target.Value = InputBox("What is your cholestrol?")
If Range("$Q$4") < 160 Then
Range("$Q$11") = Range("$Q$11") + 2
ElseIf (Range("$Q$4") >= 160 And Range("$Q$4") < 200) Then
Range("$Q$11") = Range("$Q$11") + 1
ElseIf (Range("$Q$4") >= 200 And Range("$Q$4") < 240) Then
Range("$Q$11") = Range("$Q$11") - 1
ElseIf (Range("$Q$4") >= 240 And Range("$Q$4") < 280) Then
Range("$Q$11") = Range("$Q$11") - 2
ElseIf Range("$Q$4") > 280 Then
Range("$Q$11") = Range("$Q$11") - 4
Else
Range("$Q$11") = Range("$Q$11") + 0
End If
ElseIf Target.Address = "$Q$5" Then
Target.Value = InputBox("What is your blood pressure? (Systolic)")
If Range("$Q$5") < 110 Then
Range("$Q$11") = Range("$Q$11") + 1
ElseIf (Range("$Q$5") >= 110 And Range("$Q$5") < 120) Then
Range("$Q$11") = Range("$Q$11") + 0
ElseIf (Range("$Q$5") >= 120 And Range("$Q$5") < 150) Then
Range("$Q$11") = Range("$Q$11") - 1
ElseIf (Range("$Q$5") >= 150 And Range("$Q$5") < 170) Then
Range("$Q$11") = Range("$Q$11") - 2
ElseIf Range("$Q$5") > 170 Then
Range("$Q$11") = Range("$Q$11") - 4
Else
Range("$Q$11") = Range("$Q$11") + 0
End If
ElseIf Target.Address = "$Q$6" Then
Target.Value = InputBox("How many packs of cigarettes do you smoke daily?")
If Range("$Q$6") = 0 Then
Range("$Q$11") = Range("$Q$11") + 1
ElseIf Range("$Q$6") = 1 Then
Range("$Q$11") = Range("$Q$11") - 3
ElseIf Range("$Q$6") = 2 Then
Range("$Q$11") = Range("$Q$11") - 5
Else
Range("$Q$11") = Range("$Q$11") + 0
End If
ElseIf Target.Address = "$Q$7" Then
Target.Value = InputBox("How many family members with heart disease?" & vbNewLine & "No family history = None" & vbNewLine & "One relative over 60 = One over 60" & vbNewLine & "Two relatives over 60 = Two over 60" & vbNewLine & "One relative under 60 = One under 60" & vbNewLine & "Two or more relatives under 60 = Two under 60")
If Range("$Q$7") = "None" Then
Range("$Q$11") = Range("$Q$11") + 2
ElseIf Range("$Q$7") = "One over 60" Then
Range("$Q$11") = Range("$Q$11") + 0
ElseIf Range("$Q$7") = "Two over 60" Then
Range("$Q$11") = Range("$Q$11") - 1
ElseIf Range("$Q$7") = "One under 60" Then
Range("$Q$11") = Range("$Q$11") - 2
ElseIf Range("$Q$7") = "Two under 60" Then
Range("$Q$11") = Range("$Q$11") - 4
Else
Range("$Q$11") = Range("$Q$11") + 0
End If
ElseIf Range("$Q$8") < 19 Then
If Range("$Q$8") = ??? Then ' I added this but not sure what condition you want.
Range("$Q$11") = Range("$Q$11") + 0
ElseIf (Range("$Q$8") >= 19 And Range("$Q$8") <= 25) Then
Range("$Q$11") = Range("$Q$11") + 2
ElseIf (Range("$Q$8") >= 26 And Range("$Q$8") <= 30) Then
Range("$Q$11") = Range("$Q$11") - 1
ElseIf (Range("$Q$8") >= 31 And Range("$Q$8") <= 40) Then
Range("$Q$11") = Range("$Q$11") - 3
ElseIf Range("$Q$8") > 40 Then
Range("$Q$11") = Range("$Q$11") - 5
Else
Range("$Q$11") = Range("$Q$11") + 0
End If ' Added this too, to match the If above
End If
End Sub
P.S. Spelling error on worksheet and in code: should be "Cholesterol"
Bookmarks