Membuat DAFTAR HADIR SISWA

Daftar Hadir Siswa dalam KBM adalah salah satu komponen yang harus dibuat oleh seorang guru. Rutinitas ini berlangsung setiap memasuki tahun ajaran baru atau pergantian semester.
Untuk memperingan tugas kita alangkah baiknya jika kita memiliki aplikasi "Daftar Hadir Siswa", sehingga setiap kali dibutuhkan hanya perlu sedikit pengaturan, dan Daftar Hadir Siswa siap digunakan.
Pada kesempatan ini saya sajikan tutorial cara membuat Daftar Hadir Siswa semi otomatis.
Langkah-langkahnya :
1. Buka Ms Excel
2. Ubah nama Sheet1 menjadi "HOME", Sheet2 menjadi "Siswa", dan Sheet3 menjadi "DH".
    (Kita hanya butuh 3 sheet untuk berapapun jumlah kelas yang kita ajar (dalam satu tingkat)). Seperti tampilan berikut:



3. Pada Sheet "Home" buat tampilan seperti berikut :


Pengaturan nama range:
Sel D6 beri nama range "tapel" (tanpa tanda petik). Caranya : Klik cel D6 dan arahkan mause ke nama range kemudian ketik "tapel". Lihat gambar berikut:

  

Demikian juga untuk range yang lain sebagai berikut:
Cel D7 --> nama range "smester"     Cel D8 --> "mapel"     Cel D9 --> "guru"    Cel D10 --> "nipgr"    Cel D11 --> "kasek"     Cel D12 --> "nipks"    Cel B2 -->"sekolah"    Cel G10 --> "kelas",   Cel I10 --> "urut"

Pada sheet "Home" ini kita sisipkan 2 buah CommandButton yaitu "INPUT SISWA" dan "PRINT" serta 1 buah Spin Button yang digunakan untuk mengatur kelas nantinya. Caranya : klik tab "Developer" --> Insert --> ActiveX Control --> CommondButton. Lihat gambar berijkut:


Kode script untuk tombol tersebut adalah :
Private Sub CommandButton1_Click()
Worksheets("Siswa").Activate
End Sub

Private Sub CommandButton2_Click()
Worksheets("DH").Range("A5:AI51").PrintOut Copies:=1
End Sub

Untuk SpinButton merujuk pada cel I10. Cara mengaturnya : Klik kanan SpinButton --> Format Control, maka akan muncul format kontrol dan atur seperti berikut :


Pada Cel H10 ketikkan rumus : =vlookup(I10;data;2;false)

4. Untuk Sheet "Siswa", tampilannya sebagai berikut:


Agar penomoran berjalan otomatis, pada cel A2 ketik rumus : =if(B2="";"";1) dan untuk cel A3 rumusnya =if(B3="";"";A2+1).  Cel A3 ini dicopy dan paste ke Cel A4 ke bawah
Blok range (A2:C600) beri nama range "Siswa".
Pada Sheet "Siswa") ini kita sisipkan 2 buah CommandButton yaitu "SORT" untuk mengurutkan nama berdasarkan kelas dan abjad, serta "BACK" untuk kembali ke sheet "Home". Adapun Scriptnya dari kedua tobol tersebut adalah sebagai berikut :
Private Sub CommandButton1_Click()
Range("B2:C600").Select
    ActiveWorkbook.Worksheets("siswa").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("siswa").Sort.SortFields.Add Key:=Range("C2:C600") _
        , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    ActiveWorkbook.Worksheets("siswa").Sort.SortFields.Add Key:=Range("B2:B600") _
        , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("siswa").Sort
        .SetRange Range("B2:C600")
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub

Private Sub CommandButton2_Click()
Worksheets("Home").Activate
End Sub


Blok range (C2:C600) dan beri nama range "keelas"

Pada cel  AA2 ketikkan rumus: =IF(B2="";"";IF(C2=C1;AA1;AA1+1)). Copy dan paste rumus ini sampai AA600, kemudian blok range (AA2:AA600) dan beri nama range "BETA"
Pada cel AB2 ketikkan angka 1
Pada cel AB3 ketikkan rumus: =IF(AB2="";"";IF(AB2=MAX(BETA);"";AB2+1)). Copy dan paste rumus ini ke bawah. sampai AB16
Pada Cel AC2 ketik rumus: =IF(AB2="";"";INDEX($C$2:$C$370;MATCH(AB2;$AA$2:$AA$370;0))). Copy dan paste rumus ini ke bawah. sampai AC16
Pada Cel AD2 ketik rumus: =IF(AB2="";"";COUNTIF(keelas;AC2)). Copy dan paste rumus ini ke bawah. sampai AD16
Pada Cel AE2 ketik rumus: =IF(AB2="";"";SUM($AD$2:AD2)-AD2). Copy dan paste rumus ini ke bawah. sampai AE16

5. Pada Sheet "DH" tampilannya sebagai berikut:


Rumus-rumus yang diterapkan pada sheet ini:
Cel A2: ="Mapel : "&mapel
Cel A3: ="Kelas   :  "&Kelas&" "&AL1
Cel H3: ="  Tahun Pelajaran : "&tapel
Cel AI3: ="Semester : "&Smester
Cel AK1: =urut
Cel AL1: =VLOOKUP(AK1;DATA;2;FALSE)
Cel AM1: =VLOOKUP(AK1;DATA;3;FALSE)
Cel AN1: =VLOOKUP(AK1;DATA;4;FALSE)
Cel A7: = 1
Cel B7: =IF(A7="";"";VLOOKUP(A7+$AN$1;nama;2;FALSE)). copy paste rumus ini sampai B38
Cel A8: =IF(A7<$AM$1;A7+1;""). copy paste rumus ini sampai A38

File contoh dapat didownload di "Membuat Daftar Hadir Siswa"