Merancang Input data siswa dengan excel sepanjang masa


Biasanya file input data siswa kita buat beberapa file sehingga kadang-kadang kita lupa dimana menyimpan file tersebut. Saya mencoba membuat tulisan dan mencoba membuat rancangan dalam Microsoft excel untuk input data siswa yang dapat dipakai terus-menerus tanpa harus ganti file.


Berikut adalah langkah langkah pembuatannya.
Sebelum merancang input data siswa ini saya berharap teman-teman sudah memahami  input data siswa dalam artikel sebelumnya cara sederhanamembuat form input data

Selanjutnya saya merancang data kenaikan siswa dengan desain sebagai berikut
input data siswa

aplikasi kenaikan siswa

Sebelumnya persiapkanlah sebuah sheet untuk menyimpan data pokok
Data pokok ada dua yaitu data tahun pelajaran dan data kelas
Ini gunanya untuk menampilkan data combobox untuk cara lain bisa dengan melihat artikel sebelumnya yang berjudul membuat combobox berdasarakan category

Berikut adalah kode macro yang digunakan untuk memfilter data pada data base siswa berdasarkan tahun ajaran
Perhatikan Properti berikut
No
Name
Caption
Fungsi
1
Combobox3

Untuk menampilkan tahun ajaran
2
Combobox1

Untuk menampilkan Kelas
3
Listbox1

Untuk menampilkan daftar siswa
4
Command button1
Hapus
Untuk menghapus nama siswa yang terpilih dalam listbox1
5
Combobox4

Untuk menampilkan tahun ajaran baru
6
Combobox2

Untuk menampilkan kelas yang baru

Private Sub ComboBox3_Change()
Sheet1.Activate
Range("J1").Value = ComboBox3.Value
Range("a1").CurrentRegion.Select
  ActiveSheet.Range("$A$1:$f$8").AutoFilter field:=2, Criteria1:= _
        Sheet1.Range("j1")
Sheet1.Range("A1").CurrentRegion.Select
End sub
Sedangkan untuk memfilter data siswa berdasarkan kelas kode macronya sebagai berikut
Private Sub ComboBox1_Change()
Sheet1.Activate
Range("k1").Value = ComboBox1.Value


Range("a1").CurrentRegion.Select
  ActiveSheet.Range("$A$1:$f$8").AutoFilter field:=5, Criteria1:= _
        Sheet1.Range("k1")
Sheet1.Range("A1").CurrentRegion.Select
Range("a1").CurrentRegion.SpecialCells(xlCellTypeVisible).Copy
Sheet3.Activate
Range("a1").PasteSpecial Paste:=xlPasteValues
Range("1:1").Delete
Range("a1").CurrentRegion.Select
With Selection
.Name = "Naik"
End With
ListBox1.ColumnCount = 5
ListBox1.RowSource = "Naik"

Sheet1.Activate
Selection.AutoFilter


End Sub
Setelah data terfilter dan dicopykan ke dalam sheet yang baru selanjutnya kita membuang data siswa yang tidak naik
Kode macronya adalah sebagai berikut :
Private Sub CommandButton1_Click()
If Label6.Caption = "" Then

MsgBox "Tentukan dulu yang tidak naik dengan cara klik daftar siswa"

Exit Sub
End If


Dim Msg, Style, Title, Help, Ctxt, Response, MyString
Msg = "Apakah Nama " & ListBox1.Column(3) & " Kelas :" & ListBox1.Column(4) & " akan dihapus?" ' Define message.
Style = vbYesNo + vbCritical + vbDefaultButton2    ' Define buttons.
Title = "MsgBox Demonstration"    ' Define title.
Help = "DEMO.HLP"    ' Define Help file.
Ctxt = 1000    ' Define topic
        ' context.
        ' Display message.
Response = MsgBox(Msg, Style, Title, Help, Ctxt)
If Response = vbYes Then    ' User chose Yes.
    MyString = "Yes"
    Selection.EntireRow.Delete
Else    ' User chose No.
    MyString = "No"    ' Perform some action.
End If
End Sub
Setelah data beres diolah maka kita akan mengganti tahun pelajaran dari data siswa tersebut dengan menuliskan kode sebagai berikut :
Private Sub ComboBox4_Change()
Sheet3.Activate
Dim isi As Long
isi = WorksheetFunction.CountA(Range("A:A"))
Range(Cells(1, 2), Cells(isi, 2)).Value = ComboBox4.Value

End Sub
Untuk mengganti kelas baru dari siswa kodenya adalah sebagai berikut :
Private Sub ComboBox2_Change()
Sheet3.Activate
Dim isi As Long
isi = WorksheetFunction.CountA(Range("A:A"))
Range(Cells(1, 5), Cells(isi, 5)).Value = ComboBox2.Value
End Sub
Setelah data tahun pelajaran baru dan kelas baru dari siswa tersebut selesai maka kita akan memasukannya lagi kedalam database utama yaitu dengan menuliskan kode sebagai berikut :

Private Sub CommandButton2_Click()
Sheet3.Activate
Range("a1").CurrentRegion.Copy
Sheet1.Activate


Dim isi As Long
isi = WorksheetFunction.CountA(Range("a:a")) + 1
Cells(isi, 1).PasteSpecial Paste:=xlPasteValues
Dim isilagi As Long
isilagi = WorksheetFunction.CountA(Range("a:a")) + 1

Range(Cells(2, 1), Cells(isilagi - 1, 1)).Select
Selection.Resize(, 1).Formula = "=ROW(1:1)"
End Sub


Itulah cara sederhana agar kita bisa membuat input data tanpa harus membuat file berulang-ulang atau mengcopy paste file tersebut sehingga memakan ruangan daripada harddisk.