Malicious Office (OLE) / .XLS — malware analysis report

Static analysis result for SHA-256 803a3c9461090bf7…

MALICIOUS

Office (OLE) / .XLS

2.01 MB Created: 2008-07-30 01:51:41 Authoring application: Microsoft Excel First seen: 2026-06-13
MD5: e99d3c8956e382dbf06aa21d356eada9 SHA-1: a97ae7af6fd7b56c8ef92a588ab4475a95a0c5eb SHA-256: 803a3c9461090bf706107890c3d4bd112e42a85ae8e1318310981f4e79206302
278 Risk Score

Heuristics 9

  • ClamAV: Xls.Malware.Logan-10010442-0 critical CLAMAV_DETECTION
    ClamAV detected this file as malware: Xls.Malware.Logan-10010442-0
  • VBA macros detected medium 5 related findings OLE_VBA_MACROS
    Document contains VBA macro code
  • WScript.Shell usage critical OLE_VBA_WSCRIPT
    WScript.Shell usage
    Matched line in script
        Set wsh = CreateObject("WScript.Shell")
  • CreateObject call high OLE_VBA_CREATEOBJ
    CreateObject call
    Matched line in script
    Set args = CreateObject("Scripting.Dictionary")
  • VBA p-code auto-exec with execution tokens high OLE_VBA_PCODE_AUTOEXEC_EXEC
    Triggers on the COMBINATION of two tokens co-occurring in the same compiled VBA/cache stream: an auto-execution entry point (Auto_Open / AutoOpen / Document_Open / Workbook_Open / Auto_Close / AutoClose) AND a shell/download/object-execution token (Shell, CreateObject, GetObject, PowerShell, cmd.exe, URLDownloadToFile, WinHttp, XMLHTTP, ADODB.Stream, ShellExecute, ExecuteExcel4Macro). Neither token alone fires it — it is the pairing that flags p-code-only or source-extraction-failure macro documents where the visible VBA source is unavailable. The matched tokens are named in the detail line below.
  • Workbook_Open macro low OLE_VBA_WBOPEN
    Workbook_Open macro
    Matched line in script
    Private Sub Workbook_Open()
  • Environ() call (env variable access) low OLE_VBA_ENVIRON
    Environ() call (env variable access)
    Matched line in script
                    USER_PCNAME = Environ("COMPUTERNAME")
  • Reference to Windows Script Host high SC_STR_WSCRIPT
    Reference to Windows Script Host
  • Embedded URL info EMBEDDED_URL
    One or more URLs were extracted from the document. The URL itself is not a detection — see the per-URL labels for which channel (macro, JS, link annotation, document body, ...) reached each URL.
    URL http://isis.uitm.edu.my In document text (OLE body)
    • http://res.uitm.edu.my/excel/In document text (OLE body)

Extracted artifacts 1

Files carved from inside the sample during analysis.

FilenameKindSourceSize
macros.bas vba-macro oletools.olevba.extract_macros (decoded VBA source) 210036 bytes
SHA-256: 71d7ccd65401a79ca6d5586a36608fe19acd04f5c6faa44902eec6a20bb96c5c
Preview script
First 1,000 lines of the extracted script
Attribute VB_Name = "ThisWorkbook"
Attribute VB_Base = "0{00020819-0000-0000-C000-000000000046}"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = True
Attribute VB_TemplateDerived = False
Attribute VB_Customizable = True
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If SaveAsUI Then
MsgBox "The 'Save As' function has been disabled." & Chr(10) & "Only 'Save' will work.", vbInformation, "Save As Disabled"
Cancel = True
ThisWorkbook.Save
ThisWorkbook.Close
Application.Quit
End If
End Sub

Private Sub Workbook_Open()

Set args = CreateObject("Scripting.Dictionary")
Application.Calculation = xlCalculationAutomatic
Application.EnableEvents = True

Sheets("LE15").Visible = xlSheetVeryHidden
Sheets("parameter").Visible = xlSheetVeryHidden
Sheets("RAWSCORE").Visible = xlSheetVeryHidden
Sheets("login").Visible = xlSheetVeryHidden
Sheets("exam").Visible = xlSheetVeryHidden
Sheets("KUARANTIN exam").Visible = xlSheetVeryHidden
Sheets("KUARANTIN rawscore").Visible = xlSheetVeryHidden
Sheets("KUARANTIN le15").Visible = xlSheetVeryHidden

Sheets("MENU").Activate
disblesaveas
'checkAllS
End Sub


Private Sub Workbook_BeforeClose(Cancel As Boolean)

Application.Calculation = xlCalculationAutomatic
Application.EnableEvents = True

Sheets("LE15").Visible = xlSheetVeryHidden
Sheets("parameter").Visible = xlSheetVeryHidden
Sheets("RAWSCORE").Visible = xlSheetVeryHidden
Sheets("exam").Visible = xlSheetVeryHidden
Sheets("login").Visible = xlSheetVeryHidden
Sheets("KUARANTIN exam").Visible = xlSheetVeryHidden
Sheets("KUARANTIN rawscore").Visible = xlSheetVeryHidden
Sheets("KUARANTIN le15").Visible = xlSheetVeryHidden

enablesave

End Sub






Attribute VB_Name = "Sheet1"
Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = True
Attribute VB_TemplateDerived = False
Attribute VB_Customizable = True
Private Sub Worksheet_Change(ByVal Target As Range)
'If Target.Column = 12 Then
'    Sheets("LE15").Unprotect Password:="abc010203"
'    Sheets("LE15").Cells(Target.row, 19) = staffId
'    Sheets("LE15").Protect Password:="abc010203"
'End If
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

End Sub

Attribute VB_Name = "Sheet2"
Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = True
Attribute VB_TemplateDerived = False
Attribute VB_Customizable = True

Attribute VB_Name = "frmLoadList"
Attribute VB_Base = "0{4AF3B88E-7FC9-463D-9615-843D19C42B34}{A2575611-FEAF-4048-8DD6-8D5F7333011F}"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Attribute VB_TemplateDerived = False
Attribute VB_Customizable = False
Option Explicit

Private Sub CommandButton1_Click()

If Sheets("parameter").Cells(23, 3) = 1 Then
    Retv
    Exit Sub
End If


Dim sql As String
Dim rs As ADODB.Recordset
Dim county As Long
Dim a As Long
Dim k As Long
Dim namapelajar As String

Sheets("LE15").Unprotect Password:="abc010203"
Sheets("rawscore").Unprotect Password:="abc010203"
Sheets("exam").Unprotect Password:="abc010203"
Sheets("KUARANTIN rawscore").Unprotect Password:="abc010203"
Sheets("KUARANTIN exam").Unprotect Password:="abc010203"
Sheets("KUARANTIN le15").Unprotect Password:="abc010203"


RowShow 1, 1994, True
Sheets("menu").Activate
'    If fakulti <> "" Then
'        If fakulti <> rs!krsownerid Then
'            MsgBox "You does not have access to this course"
'            Exit Sub
'        End If
'    End If
txtkursus = UCase(txtkursus)
    
Pro.Caption = "Process - Load course parameter"
DoEvents
'sql = "select * from uitm.course   where active=1 and COURSE_CODE = '" + txtkursus + "'"
'Set rs = getRS(sql, "res.uitm.edu.my,2433", "dbacademiclive")
Pro.Caption = "Process - setting course parameter"
DoEvents
url = Sheets("parameter").Cells(18, 3) + "kursus.asp"
args.RemoveAll
args.Add "kursus", txtkursus
toArray1 HttpQuery(url, args), DATA1

If UCase(Trim(DATA1(0, 0))) = UCase("no data") Then
    MsgBox "Error, no course found"
    Sheets("rawscore").Protect Password:="abc010203"
    Sheets("exam").Protect Password:="abc010203"
    Sheets("KUARANTIN rawscore").Protect Password:="abc010203"
    Sheets("KUARANTIN exam").Protect Password:="abc010203"
    Sheets("LE15").Protect Password:="abc010203"
    Exit Sub
Else
    'CREDIT_HR,COURSE_CODE,EXAM_COURSE,PROJECT_COURSE
    
    Sheets("parameter").Unprotect Password:="abc010203"
    Sheets("LE15").Cells(7, 11) = DATA1(0, 0)
    Sheets("parameter").Cells(8, 3) = DATA1(0, 1)
    
    If DATA1(0, 2) = Null Or DATA1(0, 2) = "" Then
        Sheets("parameter").Cells(2, 3) = "T"
    Else
        Sheets("parameter").Cells(2, 3) = UCase(DATA1(0, 2))
    End If
    If DATA1(0, 3) = Null Or DATA1(0, 3) = "" Then
        Sheets("parameter").Cells(3, 3) = "N"
    Else
        Sheets("parameter").Cells(3, 3) = UCase(DATA1(0, 3))
    End If
    Sheets("parameter").Protect Password:="abc010203"

End If
'Set rs = Nothing



Sheets("parameter").Unprotect Password:="abc010203"
url = Sheets("parameter").Cells(18, 3) + "getparam.asp"
Set args = Nothing
Set args = CreateObject("Scripting.Dictionary")
args.RemoveAll
args.Add "queryId", 1
toArray1 HttpQuery(url, args), DATA1
DoEvents
For k = 0 To UBound(DATA1, 1) - 1
    If DATA1(k, 0) = "sesiL A" Then
        sesiL = DATA1(k, 1)
        Sheets("parameter").Cells(14, 3) = sesiL
    ElseIf DATA1(k, 0) = "semesterL A" Then
        semesterL = DATA1(k, 1)
        Sheets("parameter").Cells(13, 3) = semesterL
    ElseIf DATA1(k, 0) = "semester A" Then
        currSemester = DATA1(k, 1)
        Sheets("parameter").Cells(12, 3) = currSemester
    End If
Next
Sheets("parameter").Protect Password:="abc010203"





Pro.Caption = "Process - Load student list"
DoEvents
'
'sql = " select * from edetailExcel  where  1=1 "
'sql = sql + " and pgpkmpid = '" + (arrayKampus(cKampus.ListIndex).kampusName) + "'"
'sql = sql + " and (status is null or status ='') "
'sql = sql + " and bayar in ('Y1','Y2','YS')  "
'sql = sql + " and substr(pgpprgid,3,1) not in ('7','9') "
'If cFakulti.ListIndex <> -1 And cFakulti.ListIndex <> 0 Then
'sql = sql + " and akdfakid = '" + (arrayFakulti(cFakulti.ListIndex).fakultiID) + "'"
'End If
'sql = sql + " and upper(krskodkursus) = '" + UCase(txtkursus) + "'"
'sql = sql + " and upper(pgdkumpulan) = '" + UCase(txtkumpulan) + "'"
'sql = sql + " order by pelnamapelajar"
'Set rs = getRS(sql, "res.uitm.edu.my,2433", "dbacademiclive")
'jumRekod = rs.RecordCount



url = Sheets("parameter").Cells(18, 3) + "synData.asp"
args.RemoveAll
args.Add "Kodkursus", txtkursus
args.Add "kumpulan", txtkumpulan
args.Add "kampusName", (arrayKampus(cKampus.ListIndex).kampusName)
args.Add "kampusID", (arrayKampus(cKampus.ListIndex).kampusID)
args.Add "fakultiID", (arrayFakulti(cFakulti.ListIndex).fakultiID)
args.Add "transactType", "download list"
args.Add "semester", Sheets("parameter").Cells(12, 3)

toArray1 HttpQuery(url, args), DATA1


If Trim(DATA1(0, 1)) = "1" Then
    MsgBox DATA1(1, 1)
    Exit Sub
End If

If Trim(DATA1(0, 1)) = "2" Then
    MsgBox DATA1(1, 1)
End If



url = Sheets("parameter").Cells(18, 3) + "studentlistDiploma.asp"
args.RemoveAll
args.Add "kampusName", (arrayKampus(cKampus.ListIndex).kampusName)
args.Add "fakultiIndex", cFakulti.ListIndex
args.Add "fakultiID", (arrayFakulti(cFakulti.ListIndex).fakultiID)
args.Add "Kodkursus", txtkursus
args.Add "kumpulan", txtkumpulan
args.Add "semester", Sheets("parameter").Cells(12, 3)
toArray1 HttpQuery(url, args), DATA1
jumRekod = UBound(DATA1, 1)
pages = jumRekod / 26

Pro.Caption = "Process - Transfering list student"
DoEvents
If DATA1(0, 0) <> "no data" Then
    

    
    ReDim arrayMarkah(jumRekod)
    For county = 0 To UBound(DATA1, 1) - 1
        arrayMarkah(county).akdfakid = DATA1(county, 6)
        arrayMarkah(county).akdRkdIdPengajian = DATA1(county, 8)
        arrayMarkah(county).krskodkursus = DATA1(county, 7)
        arrayMarkah(county).pelNamaPelajar = DATA1(county, 2)
        arrayMarkah(county).pelNoKP = DATA1(county, 1)
        arrayMarkah(county).pelNoPelajar = DATA1(county, 0)
        'arrayMarkah(county).pgdGred = rs!pgdGred
        arrayMarkah(county).pgdGred = ""
        arrayMarkah(county).pgdID = DATA1(county, 10)
        arrayMarkah(county).pgdKumpulan = DATA1(county, 9)
        arrayMarkah(county).pgdMrkhPurata = DATA1(county, 11)
        arrayMarkah(county).pgpBahagian = DATA1(county, 5)
        arrayMarkah(county).pgpKmpID = DATA1(county, 3)
        arrayMarkah(county).pgpPrgID = DATA1(county, 4)
        arrayMarkah(county).tl = DATA1(county, 18)
        arrayMarkah(county).audit = DATA1(county, 19)
        arrayMarkah(county).program = DATA1(county, 4)
        arrayMarkah(county).mode1 = DATA1(county, 8)
    Next county


Pro.Caption = "Process - formatting list/formula"
DoEvents
Sheets("parameter").Unprotect Password:="abc010203"

Sheets("LE15").Cells(6, 5) = arrayKampus(cKampus.ListIndex).kampusCode + "-" + arrayKampus(cKampus.ListIndex).kampusName
If cFakulti.ListIndex <> -1 And cFakulti.ListIndex <> 0 Then
    Sheets("LE15").Cells(7, 5) = arrayFakulti(cFakulti.ListIndex).fakultiCode + "-" + arrayFakulti(cFakulti.ListIndex).fakultiName
    Sheets("parameter").Cells(9, 3) = arrayFakulti(cFakulti.ListIndex).fakultiID
Else
    Sheets("parameter").Cells(9, 3) = "-1"
End If
'sheets("LE15").Cells(8, 5) = arrayProgram(cprogram.ListIndex).programCode + "-" + arrayProgram(cprogram.ListIndex).programName
'sheets("LE15").Cells(9, 5) = arrayMode(cmode.ListIndex).modeCode + "-" + arrayMode(cmode.ListIndex).modeName
Sheets("LE15").Cells(10, 5) = Sheets("parameter").Cells(14, 3)
Sheets("LE15").Cells(6, 11) = arrayMarkah(0).krskodkursus
Sheets("LE15").Cells(8, 11) = arrayMarkah(0).pgdKumpulan
Sheets("parameter").Cells(5, 3) = arrayKampus(cKampus.ListIndex).kampusID
Sheets("parameter").Cells(6, 3) = arrayKampus(cKampus.ListIndex).kampusName
Sheets("parameter").Cells(7, 3) = Trim(arrayMarkah(0).pgdKumpulan)
Sheets("parameter").Cells(8, 3) = Trim(arrayMarkah(0).krskodkursus)

Sheets("parameter").Protect Password:="abc010203"

Sheets("LE15").Cells(9, 11) = Sheets("parameter").Cells(13, 3)
Application.EnableEvents = False

k = 13
While Sheets("le15").Cells(k, 2) <> ""
    k = k + 1
Wend


Application.Calculation = xlCalculationManual
For a = 13 To k + 5
    Sheets("LE15").Cells(a, 1) = vbNullString
    Sheets("LE15").Cells(a, 2) = vbNullString
    Sheets("LE15").Cells(a, 3) = vbNullString
    Sheets("LE15").Cells(a, 5) = vbNullString
    Sheets("LE15").Cells(a, 6) = vbNullString
    Sheets("LE15").Cells(a, 7) = vbNullString
    Sheets("LE15").Cells(a, 12) = vbNullString
    Sheets("LE15").Cells(a, 13) = vbNullString
    Sheets("exam").Cells(a, 2) = vbNullString
    Sheets("exam").Cells(a, 1) = vbNullString
    Sheets("exam").Cells(a, 3) = vbNullString
    Sheets("exam").Cells(a, 59) = vbNullString
    Sheets("exam").Cells(a, 60) = vbNullString
    Sheets("rawscore").Cells(a + 6, 2) = vbNullString
    Sheets("rawscore").Cells(a + 6, 1) = vbNullString
Next a

'Sheets("LE15").Unprotect Password:="abc010203"
'Sheets("rawscore").Unprotect Password:="abc010203"
'Sheets("exam").Unprotect Password:="abc010203"
'Sheets("KUARANTIN rawscore").Unprotect Password:="abc010203"
'Sheets("KUARANTIN exam").Unprotect Password:="abc010203"
For a = 13 To 13 + county - 1
    Pro.Caption = "Process - formatting list/formula " + Trim(Str(a - 12)) + "/" + Trim(Str(county))
    DoEvents
    
    namapelajar = arrayMarkah(a - 13).pelNamaPelajar
    If Left(namapelajar, 1) = "'" Then
        namapelajar = "'" + namapelajar
    End If
    
    Sheets("LE15").Cells(a, 1) = arrayMarkah(a - 13).pgdID
    Sheets("LE15").Cells(a, 2) = a - 12
    Sheets("LE15").Cells(a, 3) = arrayMarkah(a - 13).pelNoPelajar
    Sheets("LE15").Cells(a, 5) = arrayMarkah(a - 13).pelNoKP
    Sheets("LE15").Cells(a, 6) = arrayMarkah(a - 13).pgpBahagian
    Sheets("LE15").Cells(a, 7) = namapelajar
    Sheets("LE15").Cells(a, 12) = "=tranferKeTemplate(RAWSCORE!R[6]C[24])"
    Sheets("LE15").Cells(a, 13) = "=KIRAGRED(RC[-1],RC[4],RC[5],RC[7])"
    Sheets("LE15").Cells(a, 14) = "=KIRAGREDmata(RC[-2],RC[3],RC[4],RC[6])"
    Sheets("LE15").Cells(a, 17) = arrayMarkah(a - 13).tl
    Sheets("LE15").Cells(a, 18) = arrayMarkah(a - 13).audit
    'sheets("LE15").Cells(a, 19) = "=keyin1()"
    Sheets("LE15").Cells(a, 20) = arrayMarkah(a - 13).program
    Sheets("LE15").Cells(a, 21) = arrayMarkah(a - 13).mode1
    Sheets("LE15").Cells(a, 22) = "=KIRALULUSGAGAL(RC[-10],RC[-9])"
    
    Sheets("exam").Cells(a, 3) = namapelajar
    Sheets("exam").Cells(a, 59) = "=checkexamtotal(RC[-51],RC[-50],RC[-49],RC[-48],RC[-47],RC[-46],RC[-45],RC[-44],RC[-43],RC[-42],RC[-41],RC[-40],RC[-39],RC[-38],RC[-37])"
    Sheets("exam").Cells(a, 60) = "=KIRATESTDOUBLE(RC[-1])"
    Sheets("exam").Cells(a, 1) = a - 12
    Sheets("exam").Cells(a, 2) = arrayMarkah(a - 13).pelNoPelajar
    
    Sheets("rawscore").Cells(a + 6, 3) = namapelajar
    Sheets("rawscore").Cells(a + 6, 15) = "=kiratest(kirabaru(RC[-7],R17C8,R15C8),kirabaru(RC[-6],R17C9,R15C9),kirabaru(RC[-5],R17C10,R15C10),kirabaru(RC[-4],R17C11,R15C11),kirabaru(RC[-3],R17C12,R15C12),kirabaru(RC[-2],R17C13,R15C13))"
    Sheets("rawscore").Cells(a + 6, 31) = "=kiraass(kirabaru(RC[-15],R17C16,R15C16),kirabaru(RC[-14],R17C17,R15C17),kirabaru(RC[-13],R17C18,R15C18),kirabaru(RC[-12],R17C19,R15C19),kirabaru(RC[-11],R17C20,R15C20),kirabaru(RC[-10],R17C21,R15C21),kirabaru(RC[-9],R17C22,R15C22),kirabaru(RC[-8],R17C23,R15C23),kirabaru(RC[-7],R17C24,R15C24),kirabaru(RC[-6],R17C25,R15C25),kirabaru(RC[-5],R17C26,R15C26),kirabaru(RC[-4],R17C27,R15C27),kirabaru(RC[-3],R17C28,R15C28),kirabaru(RC[-2],R17C29,R15C29),kirabaru(RC[-1],R17C30,R15C30))"
    Sheets("rawscore").Cells(a + 6, 32) = "=RC[-1]+RC[-17]"
    Sheets("rawscore").Cells(a + 6, 33) = "=EXAM!R[-6]C[26]"
    Sheets("rawscore").Cells(a + 6, 34) = "=RC[-1]/R17C33*R17C34"
    Sheets("rawscore").Cells(a + 6, 36) = "=kiratotal(RC[-2],RC[-21],RC[-5],RC[-1])"
    Sheets("rawscore").Cells(a + 6, 37) = "=kiratestdouble(RC[-1])"
    Sheets("rawscore").Cells(a + 6, 38) = "=kiratestdouble(RC[-5])"
    Sheets("rawscore").Cells(a + 6, 39) = "=kiratestdouble(RC[-8])"
    Sheets("rawscore").Cells(a + 6, 40) = "=kiratestdouble(RC[-25])"
    Sheets("rawscore").Cells(a + 6, 2) = arrayMarkah(a - 13).pelNoPelajar
    Sheets("rawscore").Cells(a + 6, 1) = a - 12

    
Next a


'Sheets("LE15").Range("L13:L" + Trim(Str(a))).Locked = False
'Sheets("LE15").Range("N13:N" + Trim(Str(a))).Locked = False

RowShow a + 0, 1994, False

'If cFakulti.ListIndex <> -1 Then
'sql = "insert into eexcelauditdownload values ('" + Trim(Sheets("login").Cells(1, 7)) + "','" + Trim((arrayKampus(cKampus.ListIndex).kampusID)) + "','" + Trim((arrayFakulti(cFakulti.ListIndex).fakultiID)) + "','" + Trim(arrayMarkah(1).pgdKumpulan) + "','" + Trim(arrayMarkah(1).krskodkursus) + "',SYSDATE,20102)"
''Set rs = getRS(sql, "res.uitm.edu.my,2433", "dbacademiclive")
'Else
'sql = "insert into eexcelauditdownload values ('" + Trim(Sheets("login").Cells(1, 7)) + "','" + Trim((arrayKampus(cKampus.ListIndex).kampusID)) + "'," + "0" + ",'" + arrayMarkah(1).pgdKumpulan + "','" + arrayMarkah(1).krskodkursus + "',SYSDATE,20102)"
'End If
''DESABLE SAT
'Set rs = getRS(sql, "res.uitm.edu.my,2433", "dbacademiclive")

url = Sheets("parameter").Cells(18, 3) + "auditDownload.asp"
args.RemoveAll
args.Add "login", Trim(Sheets("login").Cells(1, 7))
args.Add "kampusID", Trim((arrayKampus(cKampus.ListIndex).kampusID))
args.Add "fakultiIndex", cFakulti.ListIndex
args.Add "fakultiID", Trim((arrayFakulti(cFakulti.ListIndex).fakultiID))
args.Add "Kodkursus", Trim(arrayMarkah(0).krskodkursus)
args.Add "kumpulan", Trim(arrayMarkah(0).pgdKumpulan)
args.Add "semester", Sheets("parameter").Cells(12, 3)
toArray1 HttpQuery(url, args), DATA1



Else
    MsgBox "No data found - please check your group name"
    Sheets("LE15").Cells(7, 11) = ""
End If

KUARANTIN1    'check KUARANTIN
MsgBox "Download Completed"
Pro.Caption = ""
Application.Calculation = xlCalculationAutomatic
frmLoadList.Hide
Application.EnableEvents = True

Sheets("rawscore").Protect Password:="abc010203"
Sheets("exam").Protect Password:="abc010203"
Sheets("KUARANTIN rawscore").Protect Password:="abc010203"
Sheets("KUARANTIN exam").Protect Password:="abc010203"
Sheets("LE15").Protect Password:="abc010203"
Sheets("KUARANTIN le15").Protect Password:="abc010203"

End Sub



Private Function KUARANTIN1()
Dim sql As String
Dim rs As ADODB.Recordset
Dim county As Long
Dim a As Long
Dim k As Long
Dim namapelajar As String

Pro.Caption = "Process - Load student list(KUARANTIN-if available) "
DoEvents
'sql = " select * from edetailExcel  where  1=1 "
'sql = sql + " and pgpkmpid = '" + (arrayKampus(cKampus.ListIndex).kampusName) + "'"
'sql = sql + " and (status is null or status ='') "
'sql = sql + " and bayar NOT in ('Y1','Y2','YS')  "
'sql = sql + " and substr(pgpprgid,3,1) not in ('7','9')"
'If cFakulti.ListIndex <> -1 And cFakulti.ListIndex <> 0 Then
'    sql = sql + " and akdfakid = '" + (arrayFakulti(cFakulti.ListIndex).fakultiID) + "'"
'End If
'sql = sql + " and upper(krskodkursus) = '" + UCase(txtkursus) + "'"
'sql = sql + " and upper(pgdkumpulan) = '" + UCase(txtkumpulan) + "'"
'sql = sql + " order by pelnamapelajar"
'Set rs = getRS(sql, "res.uitm.edu.my,2433", "dbacademiclive")
'jumRekod = rs.RecordCount
url = Sheets("parameter").Cells(18, 3) + "studentlistGDiploma.asp"
args.RemoveAll
args.Add "kampusName", (arrayKampus(cKampus.ListIndex).kampusName)
args.Add "fakultiIndex", cFakulti.ListIndex
args.Add "fakultiID", (arrayFakulti(cFakulti.ListIndex).fakultiID)
args.Add "Kodkursus", txtkursus
args.Add "kumpulan", txtkumpulan
args.Add "semester", Sheets("parameter").Cells(12, 3)
toArray1 HttpQuery(url, args), DATA1
jumRekod = UBound(DATA1, 1)


pages = jumRekod / 26


Pro.Caption = "Process - Transfering list student(if available)"
DoEvents
If DATA1(0, 0) <> "no data" Then
    

    
    ReDim arrayMarkah(jumRekod)
    county = 0
    For county = 0 To UBound(DATA1, 1) - 1
        arrayMarkah(county).akdfakid = DATA1(county, 6)
        arrayMarkah(county).akdRkdIdPengajian = DATA1(county, 8)
        arrayMarkah(county).krskodkursus = DATA1(county, 7)
        arrayMarkah(county).pelNamaPelajar = DATA1(county, 2)
        arrayMarkah(county).pelNoKP = DATA1(county, 1)
        arrayMarkah(county).pelNoPelajar = DATA1(county, 0)
        'arrayMarkah(county).pgdGred = rs!pgdGred
        arrayMarkah(county).pgdGred = ""
        arrayMarkah(county).pgdID = DATA1(county, 10)
        arrayMarkah(county).pgdKumpulan = DATA1(county, 9)
        arrayMarkah(county).pgdMrkhPurata = DATA1(county, 11)
        arrayMarkah(county).pgpBahagian = DATA1(county, 5)
        arrayMarkah(county).pgpKmpID = DATA1(county, 3)
        arrayMarkah(county).pgpPrgID = DATA1(county, 4)
        arrayMarkah(county).tl = DATA1(county, 18)
        arrayMarkah(county).audit = DATA1(county, 19)
        arrayMarkah(county).program = DATA1(county, 4)
        arrayMarkah(county).mode1 = DATA1(county, 8)
        arrayMarkah(county).bayar = DATA1(county, 21)
        If DATA1(county, 20) <> vbNullString Then
            arrayMarkah(county).status = DATA1(county, 20)
        Else
            arrayMarkah(county).status = "Valid status"
        End If
    Next county

Set rs = Nothing

Pro.Caption = "Process - formatting list/formula"
DoEvents
'Sheets("parameter").Unprotect Password:="abc010203"

Sheets("KUARANTIN LE15").Cells(6, 5) = arrayKampus(cKampus.ListIndex).kampusCode + "-" + arrayKampus(cKampus.ListIndex).kampusName
If cFakulti.ListIndex <> -1 And cFakulti.ListIndex <> 0 Then
    Sheets("KUARANTIN LE15").Cells(7, 5) = arrayFakulti(cFakulti.ListIndex).fakultiCode + "-" + arrayFakulti(cFakulti.ListIndex).fakultiName
End If
'sheets("LE15").Cells(8, 5) = arrayProgram(cprogram.ListIndex).programCode + "-" + arrayProgram(cprogram.ListIndex).programName
'sheets("LE15").Cells(9, 5) = arrayMode(cmode.ListIndex).modeCode + "-" + arrayMode(cmode.ListIndex).modeName
Sheets("KUARANTIN LE15").Cells(10, 5) = Sheets("parameter").Cells(14, 3)
Sheets("KUARANTIN LE15").Cells(6, 11) = arrayMarkah(0).krskodkursus
Sheets("KUARANTIN LE15").Cells(8, 11) = arrayMarkah(0).pgdKumpulan
'Sheets("parameter").Cells(6, 3) = arrayKampus(cKampus.ListIndex).kampusID
'Sheets("parameter").Cells(7, 3) = Trim(arrayMarkah(1).pgdKumpulan)
'Sheets("parameter").Cells(8, 3) = Trim(arrayMarkah(1).krskodkursus)

'Sheets("parameter").Protect Password:="abc010203"

Sheets("KUARANTIN LE15").Cells(9, 11) = Sheets("parameter").Cells(13, 3)
Application.EnableEvents = False

k = 13
While Sheets("KUARANTIN le15").Cells(k, 2) <> ""
    k = k + 1
Wend


Application.Calculation = xlCalculationManual
For a = 13 To k + 5
    Sheets("KUARANTIN LE15").Cells(a, 1) = vbNullString
    Sheets("KUARANTIN LE15").Cells(a, 2) = vbNullString
    Sheets("KUARANTIN LE15").Cells(a, 3) = vbNullString
    Sheets("KUARANTIN LE15").Cells(a, 5) = vbNullString
    Sheets("KUARANTIN LE15").Cells(a, 6) = vbNullString
    Sheets("KUARANTIN LE15").Cells(a, 7) = vbNullString
    Sheets("KUARANTIN LE15").Cells(a, 12) = vbNullString
    Sheets("KUARANTIN LE15").Cells(a, 13) = vbNullString
    Sheets("KUARANTIN exam").Cells(a, 2) = vbNullString
    Sheets("KUARANTIN exam").Cells(a, 1) = vbNullString
    Sheets("KUARANTIN exam").Cells(a, 3) = vbNullString
    Sheets("KUARANTIN exam").Cells(a, 59) = vbNullString
    Sheets("KUARANTIN rawscore").Cells(a + 6, 2) = vbNullString
    Sheets("KUARANTIN rawscore").Cells(a + 6, 1) = vbNullString
Next a

'Sheets("LE15").Unprotect Password:="abc010203"
'Sheets("rawscore").Unprotect Password:="abc010203"
'Sheets("exam").Unprotect Password:="abc010203"
'Sheets("KUARANTIN rawscore").Unprotect Password:="abc010203"
'Sheets("KUARANTIN exam").Unprotect Password:="abc010203"
For a = 13 To 13 + county - 1
    Pro.Caption = "Process - formatting list/formula " + Trim(Str(a - 12)) + "/" + Trim(Str(county))
    DoEvents
    
        namapelajar = arrayMarkah(a - 13).pelNamaPelajar
    If Left(namapelajar, 1) = "'" Then
        namapelajar = "'" + namapelajar
    End If
    
    Sheets("KUARANTIN LE15").Cells(a, 1) = arrayMarkah(a - 13).pgdID
    Sheets("KUARANTIN LE15").Cells(a, 2) = a - 12
    Sheets("KUARANTIN LE15").Cells(a, 3) = arrayMarkah(a - 13).pelNoPelajar
    Sheets("KUARANTIN LE15").Cells(a, 5) = arrayMarkah(a - 13).pelNoKP
    Sheets("KUARANTIN LE15").Cells(a, 6) = arrayMarkah(a - 13).pgpBahagian
    Sheets("KUARANTIN LE15").Cells(a, 7) = namapelajar
    Sheets("KUARANTIN LE15").Cells(a, 12) = "=tranferKeTemplate('KUARANTIN RAWSCORE'!R[6]C[24])"
    Sheets("KUARANTIN LE15").Cells(a, 13) = "=KIRAGRED(RC[-1],RC[4],RC[5],RC[7])"
    Sheets("KUARANTIN LE15").Cells(a, 17) = arrayMarkah(a - 13).tl
    Sheets("KUARANTIN LE15").Cells(a, 18) = arrayMarkah(a - 13).audit
    'sheets("LE15").Cells(a, 19) = "=keyin1()"
    Sheets("KUARANTIN LE15").Cells(a, 20) = arrayMarkah(a - 13).program
    Sheets("KUARANTIN LE15").Cells(a, 21) = arrayMarkah(a - 13).mode1
    Sheets("KUARANTIN LE15").Cells(a, 22) = arrayMarkah(a - 13).bayar
    Sheets("KUARANTIN LE15").Cells(a, 23) = arrayMarkah(a - 13).status
    
    Sheets("KUARANTIN exam").Cells(a, 3) = namapelajar
    Sheets("KUARANTIN exam").Cells(a, 59) = "=checkexamtotal(RC[-51],RC[-50],RC[-49],RC[-48],RC[-47],RC[-46],RC[-45],RC[-44],RC[-43],RC[-42],RC[-41],RC[-40],RC[-39],RC[-38],RC[-37])"
    Sheets("KUARANTIN exam").Cells(a, 60) = "=KIRATESTDOUBLE(RC[-1])"
    Sheets("KUARANTIN exam").Cells(a, 1) = a - 12
    Sheets("KUARANTIN exam").Cells(a, 2) = arrayMarkah(a - 13).pelNoPelajar
    
    Sheets("KUARANTIN rawscore").Cells(a + 6, 3) = namapelajar
    Sheets("KUARANTIN rawscore").Cells(a + 6, 15) = "=kiratest(kirabaru(RC[-7],R17C8,R15C8),kirabaru(RC[-6],R17C9,R15C9),kirabaru(RC[-5],R17C10,R15C10),kirabaru(RC[-4],R17C11,R15C11),kirabaru(RC[-3],R17C12,R15C12),kirabaru(RC[-2],R17C13,R15C13))"
    Sheets("KUARANTIN rawscore").Cells(a + 6, 31) = "=kiraass(kirabaru(RC[-15],R17C16,R15C16),kirabaru(RC[-14],R17C17,R15C17),kirabaru(RC[-13],R17C18,R15C18),kirabaru(RC[-12],R17C19,R15C19),kirabaru(RC[-11],R17C20,R15C20),kirabaru(RC[-10],R17C21,R15C21),kirabaru(RC[-9],R17C22,R15C22),kirabaru(RC[-8],R17C23,R15C23),kirabaru(RC[-7],R17C24,R15C24),kirabaru(RC[-6],R17C25,R15C25),kirabaru(RC[-5],R17C26,R15C26),kirabaru(RC[-4],R17C27,R15C27),kirabaru(RC[-3],R17C28,R15C28),kirabaru(RC[-2],R17C29,R15C29),kirabaru(RC[-1],R17C30,R15C30))"
    Sheets("KUARANTIN rawscore").Cells(a + 6, 32) = "=RC[-1]+RC[-17]"
    Sheets("KUARANTIN rawscore").Cells(a + 6, 33) = "='KUARANTIN EXAM'!R[-6]C[26]"

    Sheets("KUARANTIN rawscore").Cells(a + 6, 34) = "=RC[-1]/R17C33*R17C34"
    Sheets("KUARANTIN rawscore").Cells(a + 6, 36) = "=kiratotal(RC[-2],RC[-21],RC[-5],RC[-1])"
    Sheets("KUARANTIN rawscore").Cells(a + 6, 37) = "=kiratestdouble(RC[-1])"
    Sheets("KUARANTIN rawscore").Cells(a + 6, 38) = "=kiratestdouble(RC[-5])"
    Sheets("KUARANTIN rawscore").Cells(a + 6, 39) = "=kiratestdouble(RC[-8])"
    Sheets("KUARANTIN rawscore").Cells(a + 6, 40) = "=kiratestdouble(RC[-25])"
    Sheets("KUARANTIN rawscore").Cells(a + 6, 2) = arrayMarkah(a - 13).pelNoPelajar
    Sheets("KUARANTIN rawscore").Cells(a + 6, 1) = a - 12
   
Next a

End If
End Function

Private Sub Label1_Click()

End Sub

Private Sub UserForm_Click()

End Sub



Private Sub Retv()
Dim sql As String
Dim rs As ADODB.Recordset
Dim county As Long
Dim a As Long
Dim k As Long
Dim namapelajar As String
Dim loop12 As Integer

Sheets("LE15").Unprotect Password:="abc010203"
Sheets("rawscore").Unprotect Password:="abc010203"
Sheets("exam").Unprotect Password:="abc010203"
Sheets("KUARANTIN rawscore").Unprotect Password:="abc010203"
Sheets("KUARANTIN exam").Unprotect Password:="abc010203"
Sheets("KUARANTIN le15").Unprotect Password:="abc010203"


RowShow 1, 1994, True
Sheets("menu").Activate
'    If fakulti <> "" Then
'        If fakulti <> rs!krsownerid Then
'            MsgBox "You does not have access to this course"
'            Exit Sub
'        End If
'    End If
txtkursus = UCase(txtkursus)
    
Pro.Caption = "Process - Load course parameter"
DoEvents
'sql = "select * from uitm.course   where active=1 and COURSE_CODE = '" + txtkursus + "'"
'Set rs = getRS(sql, "res.uitm.edu.my,2433", "dbacademiclive")
Pro.Caption = "Process - setting course parameter"
DoEvents
url = Sheets("parameter").Cells(18, 3) + "kursus.asp"
args.RemoveAll
args.Add "kursus", txtkursus
toArray1 HttpQuery(url, args), DATA1

If UCase(Trim(DATA1(0, 0))) = UCase("no data") Then
    MsgBox "Error, no course found"
    Sheets("rawscore").Protect Password:="abc010203"
    Sheets("exam").Protect Password:="abc010203"
    Sheets("KUARANTIN rawscore").Protect Password:="abc010203"
    Sheets("KUARANTIN exam").Protect Password:="abc010203"
    Sheets("LE15").Protect Password:="abc010203"
    Exit Sub
Else
    'CREDIT_HR,COURSE_CODE,EXAM_COURSE,PROJECT_COURSE
    
    Sheets("parameter").Unprotect Password:="abc010203"
    Sheets("LE15").Cells(7, 11) = DATA1(0, 0)
    Sheets("parameter").Cells(8, 3) = DATA1(0, 1)
    
    If DATA1(0, 2) = Null Or DATA1(0, 2) = "" Then
        Sheets("parameter").Cells(2, 3) = "T"
    Else
        Sheets("parameter").Cells(2, 3) = UCase(DATA1(0, 2))
    End If
    If DATA1(0, 3) = Null Or DATA1(0, 3) = "" Then
        Sheets("parameter").Cells(3, 3) = "N"
    Else
        Sheets("parameter").Cells(3, 3) = UCase(DATA1(0, 3))
    End If
    Sheets("parameter").Protect Password:="abc010203"

End If
'Set rs = Nothing

Sheets("parameter").Unprotect Password:="abc010203"
url = Sheets("parameter").Cells(18, 3) + "getparam.asp"
Set args = Nothing
Set args = CreateObject("Scripting.Dictionary")
args.RemoveAll
args.Add "queryId", 1
toArray1 HttpQuery(url, args), DATA1
DoEvents
For k = 0 To UBound(DATA1, 1) - 1
    If DATA1(k, 0) = "sesiL A" Then
        sesiL = DATA1(k, 1)
        Sheets("parameter").Cells(14, 3) = sesiL
    ElseIf DATA1(k, 0) = "semesterL A" Then
        semesterL = DATA1(k, 1)
        Sheets("parameter").Cells(13, 3) = semesterL
    ElseIf DATA1(k, 0) = "semester A" Then
        currSemester = DATA1(k, 1)
        Sheets("parameter").Cells(12, 3) = currSemester
    End If
Next
Sheets("parameter").Protect Password:="abc010203"



Pro.Caption = "Process - Load student list"
DoEvents
'
'sql = " select * from edetailExcel  where  1=1 "
'sql = sql + " and pgpkmpid = '" + (arrayKampus(cKampus.ListIndex).kampusName) + "'"
'sql = sql + " and (status is null or status ='') "
'sql = sql + " and bayar in ('Y1','Y2','YS')  "
'sql = sql + " and substr(pgpprgid,3,1) not in ('7','9') "
'If cFakulti.ListIndex <> -1 And cFakulti.ListIndex <> 0 Then
'sql = sql + " and akdfakid = '" + (arrayFakulti(cFakulti.ListIndex).fakultiID) + "'"
'End If
'sql = sql + " and upper(krskodkursus) = '" + UCase(txtkursus) + "'"
'sql = sql + " and upper(pgdkumpulan) = '" + UCase(txtkumpulan) + "'"
'sql = sql + " order by pelnamapelajar"
'Set rs = getRS(sql, "res.uitm.edu.my,2433", "dbacademiclive")
'jumRekod = rs.RecordCount

url = Sheets("parameter").Cells(18, 3) + "studentlistKKBFINAL.asp"
args.RemoveAll
args.Add "kampusName", (arrayKampus(cKampus.ListIndex).kampusName)
args.Add "fakultiIndex", cFakulti.ListIndex
args.Add "fakultiID", (arrayFakulti(cFakulti.ListIndex).fakultiID)
args.Add "Kodkursus", txtkursus
args.Add "kumpulan", txtkumpulan
args.Add "semester", Sheets("parameter").Cells(12, 3)
'args.Add "program", arrayProgram(cprogram.ListIndex).programID
args.Add "programIndex", -1
toArray1 HttpQuery(url, args), DATA1
jumRekod = UBound(DATA1, 1)
pages = jumRekod / 26

Pro.Caption = "Process - Transfering list student"
DoEvents
If DATA1(0, 0) <> "no data" Then
    

    
    ReDim arrayMarkah(jumRekod)
    ReDim arrayTheScore(jumRekod)
    For county = 0 To UBound(DATA1, 1) - 1
        arrayMarkah(county).akdfakid = DATA1(county, 6)
        arrayMarkah(county).akdRkdIdPengajian = DATA1(county, 8)
        arrayMarkah(county).krskodkursus = DATA1(county, 7)
        arrayMarkah(county).pelNamaPelajar = DATA1(county, 2)
        arrayMarkah(county).pelNoKP = DATA1(county, 1)
        arrayMarkah(county).pelNoPelajar = DATA1(county, 0)
        'arrayMarkah(county).pgdGred = rs!pgdGred
        arrayMarkah(county).pgdGred = ""
        arrayMarkah(county).pgdID = DATA1(county, 10)
        arrayMarkah(county).pgdKumpulan = DATA1(county, 9)
        arrayMarkah(county).pgdMrkhPurata = DATA1(county, 11)
        arrayMarkah(county).pgpBahagian = DATA1(county, 5)
        arrayMarkah(county).pgpKmpID = DATA1(county, 3)
        arrayMarkah(county).pgpPrgID = DATA1(county, 4)
        arrayMarkah(county).tl = DATA1(county, 18)
        arrayMarkah(county).audit = DATA1(county, 19)
        arrayMarkah(county).program = DATA1(county, 4)
        arrayMarkah(county).mode1 = DATA1(county, 8)

        For loop12 = 0 To 35
            If DATA1(county, 25 + loop12) <> "" Then arrayTheScore(county).testo(loop12) = DATA1(county, 25 + loop12)
        Next loop12
            If DATA1(county, 61) <> "" Then arrayTheScore(county).stat = DATA1(county, 61)
    Next county


Pro.Caption = "Process - formatting list/formula"
DoEvents
Sheets("parameter").Unprotect Password:="abc010203"

Sheets("LE15").Cells(6, 5) = arrayKampus(cKampus.ListIndex).kampusCode + "-" + arrayKampus(cKampus.ListIndex).kampusName
If cFakulti.ListIndex <> -1 And cFakulti.ListIndex <> 0 Then
    Sheets("LE15").Cells(7, 5) = arrayFakulti(cFakulti.ListIndex).fakultiCode + "-" + arrayFakulti(cFakulti.ListIndex).fakultiName
    Sheets("parameter").Cells(9, 3) = arrayFakulti(cFakulti.ListIndex).fakultiID
Else
    Sheets("parameter").Cells(9, 3) = "-1"
End If
If cprogram.ListIndex <> -1 And cprogram.ListIndex <> 0 Then
    Sheets("parameter").Cells(15, 3) = arrayProgram(cprogram.ListIndex).programID
Else
    Sheets("parameter").Cells(15, 3) = ""

End If

'sheets("LE15").Cells(8, 5) = arrayProgram(cprogram.ListIndex).programCode + "-" + arrayProgram(cprogram.ListIndex).programName
'sheets("LE15").Cells(9, 5) = arrayMode(cmode.ListIndex).modeCode + "-" + arrayMode(cmode.ListIndex).modeName
Sheets("LE15").Cells(10, 5) = Sheets("parameter").Cells(14, 3)
Sheets("LE15").Cells(6, 11) = arrayMarkah(0).krskodkursus
Sheets("LE15").Cells(8, 11) = arrayMarkah(0).pgdKumpulan
Sheets("parameter").Cells(6, 3) = arrayKampus(cKampus.ListIndex).kampusName
Sheets("parameter").Cells(5, 3) = arrayKampus(cKampus.ListIndex).kampusID
Sheets("parameter").Cells(7, 3) = Trim(arrayMarkah(0).pgdKumpulan)
Sheets("parameter").Cells(8, 3) = Trim(arrayMarkah(0).krskodkursus)

Sheets("parameter").Protect Password:="abc010203"

Sheets("LE15").Cells(9, 11) = Sheets("parameter").Cells(13, 3)
Application.EnableEvents = False

k = 13
While Sheets("le15").Cells(k, 2) <> ""
    k = k + 1
Wend


Application.Calculation = xlCalculationManual
For a = 13 To k + 5
    Sheets("LE15").Cells(a, 1) = vbNullString
    Sheets("LE15").Cells(a, 2) = vbNullString
    Sheets("LE15").Cells(a, 3) = vbNullString
    Sheets("LE15").Cells(a, 5) = vbNullString
    Sheets("LE15").Cells(a, 6) = vbNullString
    Sheets("LE15").Cells(a, 7) = vbNullString
    Sheets("LE15").Cells(a, 12) = vbNullString
    Sheets("LE15").Cells(a, 13) = vbNullString
    Sheets("exam").Cells(a, 2) = vbNullString
    Sheets("exam").Cells(a, 1) = vbNullString
    Sheets("exam").Cells(a, 3) = vbNullString
    Sheets("exam").Cells(a, 59) = vbNullString
    Sheets("exam").Cells(a, 60) = vbNullString
    Sheets("rawscore").Cells(a + 6, 2) = vbNullString
    Sheets("rawscore").Cells(a + 6, 1) = vbNullString
Next a

url = Sheets("parameter").Cells(18, 3) + "headerDownloadNormal.asp"
args.RemoveAll
args.Add "kampusName", (arrayKampus(cKampus.ListIndex).kampusName)
args.Add "fakultiIndex", cFakulti.ListIndex
args.Add "fakultiID", (arrayFakulti(cFakulti.ListIndex).fakultiID)
args.Add "Kodkursus", txtkursus
args.Add "kumpulan", txtkumpulan
'args.Add "program", arrayProgram(cprogram.ListIndex).programID
args.Add "programIndex", -1
toArray1 HttpQuery(url, args), DATA1
jumRekod = UBound(DATA1, 1)

If DATA1(0, 0) <> "no data" Then


    Sheets("MENU").Cells(15, 7) = DATA1(0, 4)
    Sheets("MENU").Cells(16, 7) = DATA1(0, 5)
   ' Sheets("MENU").Cells(17, 7) = DATA1(0, 6)
    
    Sheets("MENU").Cells(6, 6) = DATA1(0, 7)
    Sheets("MENU").Cells(7, 6) = DATA1(0, 8)
    Sheets("MENU").Cells(8, 6) = DATA1(0, 9)
    
    

    Sheets("rawscore").Cells(15, 8) = DATA1(0, 10)
    Sheets("rawscore").Cells(15, 9) = DATA1(0, 12)
    Sheets("rawscore").Cells(15, 10) = DATA1(0, 14)
    Sheets("rawscore").Cells(15, 11) = DATA1(0, 16)
    Sheets("rawscore").Cells(15, 12) = DATA1(0, 18)
    Sheets("rawscore").Cells(15, 13) = DATA1(0, 20)
    
    Sheets("rawscore").Cells(17, 8) = DATA1(0, 11)
    Sheets("rawscore").Cells(17, 9) = DATA1(0, 13)
    Sheets("rawscore").Cells(17, 10) = DATA1(0, 15)
    Sheets("rawscore").Cells(17, 11) = DATA1(0, 17)
    Sheets("rawscore").Cells(17, 12) = DATA1(0, 19)
    Sheets("rawscore").Cells(17, 13) = DATA1(0, 21)
    
    For loop12 = 8 To 13
        Sheets("rawscore").Cells(18, loop12) = DATA1(0, 60 + loop12)
    Next loop12

    For loop12 = 0 To 14
        Sheets("rawscore").Cells(15, loop12 + 16) = DATA1(0, (22 + 2 * loop12))
    Next loop12
    
    For loop12 = 0 To 14
        Sheets("rawscore").Cells(17, loop12 + 16) = DATA1(0, (23 + 2 * loop12))
    Next loop12
 
    For loop12 = 0 To 14
        Sheets("rawscore").Cells(18, loop12 + 16) = DATA1(0, 74 + loop12)
    Next loop12
    
    For loop12 = 0 To 14
        Sheets("EXAM").Cells(12, loop12 + 8) = DATA1(0, 52 + loop12)
    Next loop12
    
    For loop12 = 0 To 14
        Sheets("EXAM").Cells(10, 8 + loop12) = DATA1(0, 89 + loop12)
    Next loop12
    Sheets("RAWSCORE").Cells(17, 33) = DATA1(0, 67)
Else
    MsgBox "no header file found"
    Sheets("rawscore").Protect Password:="abc010203"
    Sheets("exam").Protect Password:="abc010203"
    Sheets("KUARANTIN rawscore").Protect Password:="abc010203"
    Sheets("KUARANTIN exam").Protect Password:="abc010203"
    Sheets("LE15").Protect Password:="abc010203"
    Exit Sub
    
End If





'Sheets("LE15").Unprotect Password:="abc010203"
'Sheets("rawscore").Unprotect Password:="abc010203"
'Sheets("exam").Unprotect Password:="abc010203"
'Sheets("KUARANTIN rawscore").Unprotect Password:="abc010203"
'Sheets("KUARANTIN exam").Unprotect Password:="abc010203"
For a = 13 To 13 + county - 1
    Pro.Caption = "Process - formatting list/formula " + Trim(Str(a - 12)) + "/" + Trim(Str(county))
    DoEvents
    
    namapelajar = arrayMarkah(a - 13).pelNamaPelajar
    If Left(namapelajar, 1) = "'" Then
        namapelajar = "'" + namapelajar
    End If
    
    Sheets("LE15").Cells(a, 1) = arrayMarkah(a - 13).pgdID
    Sheets("LE15").Cells(a, 2) = a - 12
    Sheets("LE15").Cells(a, 3) = arrayMarkah(a - 13).pelNoPelajar
    Sheets("LE15").Cells(a, 5) = arrayMarkah(a - 13).pelNoKP
    Sheets("LE15").Cells(a, 6) = arrayMarkah(a - 13).pgpBahagian
    Sheets("LE15").Cells(a, 7) = namapelajar
    Sheets("LE15").Cells(a, 12) = "=tranferKeTemplate(RAWSCORE!R[6]C[24])"
    Sheets("LE15").Cells(a, 13) = "=KIRAGRED(RC[-1],RC[4],RC[5],RC[7])"
    Sheets("LE15").Cells(a, 14) = "=KIRAGREDmata(RC[-2],RC[3],RC[4],RC[6])"
    Sheets("LE15").Cells(a, 17) = arrayMarkah(a - 13).tl
    Sheets("LE15").Cells(a, 18) = arrayMarkah(a - 13).audit
    'sheets("LE15").Cells(a, 19) = "=keyin1()"
    Sheets("LE15").Cells(a, 20) = arrayMarkah(a - 13).program
    Sheets("LE15").Cells(a, 21) = arrayMarkah(a - 13).mode1
    Sheets("LE15").Cells(a, 22) = "=KIRALULUSGAGAL(RC[-10],RC[-9])"
    
    Sheets("exam").Cells(a, 3) = namapelajar
    Sheets("exam").Cells(a, 59) = "=checkexamtotal(RC[-51],RC[-50],RC[-49],RC[-48],RC[-47],RC[-46],RC[-45],RC[-44],RC[-43],RC[-42],RC[-41],RC[-40],RC[-39],RC[-38],RC[-37])"
    Sheets("exam").Cells(a, 60) = "=KIRATESTDOUBLE(RC[-1])"
    Sheets("exam").Cells(a, 1) = a - 12
    Sheets("exam").Cells(a, 2) = arrayMarkah(a - 13).pelNoPelajar
    
    Sheets("rawscore").Cells(a + 6, 3) = namapelajar
    Sheets("rawscore").Cells(a + 6, 15) = "=kiratest(kirabaru(RC[-7],R17C8,R15C8),kirabaru(RC[-6],R17C9,R15C9),kirabaru(RC[-5],R17C10,R15C10),kirabaru(RC[-4],R17C11,R15C11),kirabaru(RC[-3],R17C12,R15C12),kirabaru(RC[-2],R17C13,R15C13))"
    Sheets("rawscore").Cells(a + 6, 31) = "=kiraass(kirabaru(RC[-15],R17C16,R15C16),kirabaru(RC[-14],R17C17,R15C17),kirabaru(RC[-13],R17C18,R15C18),kirabaru(RC[-12],R17C19,R15C19),kirabaru(RC[-11],R17C20,R15C20),kirabaru(RC[-10],R17C21,R15C21),kirabaru(RC[-9],R17C22,R15C22),kirabaru(RC[-8],R17C23,R15C23),kirabaru(RC[-7],R17C24,R15C24),kirabaru(RC[-6],R17C25,R15C25),kirabaru(RC[-5],R17C26,R15C26),kirabaru(RC[-4],R17C27,R15C27),kirabaru(RC[-3],R17C28,R15C28),kirabaru(RC[-2],R17C29,R15C29),kirabaru(RC[-1],R17C30,R15C30))"
    Sheets("rawscore").Cells(a + 6, 32) = "=RC[-1]+RC[-17]"
    Sheets("rawscore").Cells(a + 6, 33) = "=EXAM!R[-6]C[26]"
    Sheets("rawscore").Cells(a + 6, 34) = "=RC[-1]/R17C33*R17C34"
    Sheets("rawscore").Cells(a + 6, 36) = "=kiratotal(RC[-2],RC[-21],RC[-5],RC[-1])"
    Sheets("rawscore").Cells(a + 6, 37) = "=kiratestdouble(RC[-1])"
    Sheets("rawscore").Cells(a + 6, 38) = "=kiratestdouble(RC[-5])"
    Sheets("rawscore").Cells(a + 6, 39) = "=kiratestdouble(RC[-8])"
    Sheets("rawscore").Cells(a + 6, 40) = "=kiratestdouble(RC[-25])"
    Sheets("rawscore").Cells(a + 6, 2) = arrayMarkah(a - 13).pelNoPelajar
    Sheets("rawscore").Cells(a + 6, 1) = a - 12
    
    For loop12 = 0 To 5
        If arrayTheScore(a - 13).testo(loop12 + 0) = -1 Then
            Sheets("rawscore").Cells(a + 6, 8 + loop12) = "MC"
        Else
            Sheets("rawscore").Cells(a + 6, 8 + loop12) = arrayTheScore(a - 13).testo(loop12 + 0)
        End If
    Next loop12
    
    For loop12 = 0 To 14
        If arrayTheScore(a - 13).testo(loop12 + 6) = -1 Then
            Sheets("rawscore").Cells(a + 6, 16 + loop12) = "MC"
        Else
            Sheets("rawscore").Cells(a + 6, 16 + loop12) = arrayTheScore(a - 13).testo(loop12 + 6)
        End If
    Next loop12
    
    For loop12 = 0 To 14
        If arrayTheScore(a - 13).testo(loop12 + 21) = -1 Then
            Sheets("exam").Cells(a, 8 + loop12) = "MC"
        ElseIf arrayTheScore(a - 13).testo(loop12 + 21) = 0 Then
            Sheets("exam").Cells(a, 8 + loop12) = ""
        Else
            Sheets("exam").Cells(a, 8 + loop12) = arrayTheScore(a - 13).testo(loop12 + 21)
        End If
    Next loop12
    
    
…