Option Explicit
Dim Res, N1, N2
Dim st_good, st_Vgood, st_Exc$
Dim SH As Worksheet, i%, lr%
'+++++++++++++++++++++++++++++++++
Sub Get_Resulte()
With Application
.ScreenUpdating = False
.Calculation = xlCalculationManual
End With
Set SH = Sheets("DATA")
lr = SH.Cells(Rows.Count, "C").End(3).Row
For i = 5 To lr Step 4
If SH.Cells(i, "BK") = vbNullString _
Or SH.Cells(i, "AX") = vbNullString Then
SH.Cells(i + 3, "AX") = _
IIf(SH.Cells(i + 3, "AX") = _
vbNullString, "---", SH.Cells(i + 3, "AX"))
GoTo Next_i
End If
Call Verifay(SH.Cells(i, "AX"), SH.Cells(i, "BK"))
SH.Cells(i, "BL") = Res
Next_i:
Next
With Application
.ScreenUpdating = True
.Calculation = xlCalculationAutomatic
End With
End Sub
'+++++++++++++++++++++++++++++++
Sub Verifay(rang1 As Range, rang2 As Range)
st_good = "Good"
st_Vgood = "Very Good"
st_Exc = "Excellent"
N1 = rang1: N2 = rang2
Select Case True
Case N1 >= 800 And N1 <= 812 And N2 >= 1 And N2 <= 13
Res = st_good
Case N1 >= 925 And N1 <= 937 And N2 >= 1 And N2 <= 13
Res = st_Vgood
Case N1 >= 1050 And N1 <= 1062 And N2 >= 1 And N2 <= 13
Res = st_Exc
Case Else
Res = SH.Range("AX8")
End Select
End Sub