Excel VBA help please

Associate
Joined
31 Dec 2002
Posts
458
Hi,

I am just starting with vba in Excel 2010 and have done some .net Visual Basic programming. However I am finding it hard going with vba. I am trying to run the following, but keep getting errors when trying to run. My worksheet is called model and is the first sheet in the workbook:

Sub workoutgrade()

Dim grade As String



If Range("pass4") > 7 And Range("pass5") > 7 Then
grade = "Pass"
ElseIf Range("merit4") > 4 And Range("merit5") > 5 Then
grade = "Merit"
ElseIf Range("dist4") > 4 And Range("dist5") > 5 Then
grade = "Distinction"
ElseIf Range("pass4") + Range("pass5") < 16 And grade <> "Merit" Or "Distinction" Then
grade = "Fail"
Else: grade = "Merit"
Range("grade") = grade
End If




End Sub

the cells referred to by range hold a numerical value. I want to run the conditional tests and output the grade string to named range cell grade. Any ideas would be appreciated. I think I have probably got the syntax wrong!!!!
 
Associate
OP
Joined
31 Dec 2002
Posts
458
Hi, thanks for the replies. I ended up with:

Private Sub grades()

Dim grade As String
Dim pass4 As Integer
Dim pass5 As Integer
Dim merit4 As Integer
Dim merit5 As Integer
Dim dist4 As Integer
Dim dist5 As Integer
Dim fail As Integer

pass4 = Range("pass4").Value
pass5 = Range("pass5").Value
merit4 = Range("merit4").Value
merit5 = Range("merit5").Value
dist4 = Range("dist4").Value
dist5 = Range("dist5").Value
failcheck = Range("failcheck").Value


If pass4 > 5 And pass5 > 8 Then
grade = "Pass"

ElseIf merit4 > 4 And merit5 > 5 Then
grade = "Merit"

ElseIf dist4 > 4 And dist5 > 5 Then
grade = "Distinction"

ElseIf merit4 + dist4 > 4 And merit5 + dist5 > 5 And dist4 < 5 And dist5 < 6 Then
grade = "Merit"

ElseIf merit4 < 5 And merit5 < 6 And dist4 < 5 And dist5 < 6 And Range("failcheck").Value > 0 Then
grade = "Fail"

Else: grade = "Pass"

End If

Range("grade").Value = grade

End Sub

This seems to work. Cheers:)
 
Back
Top Bottom