Anda di halaman 1dari 12

Cara Mudah Membuat Form Input Data Siswa

Berbasis Excel dengan VBA

Input data siswa yang masih menggunakan Excel sebagai pengolahan database siswa memang
masih banyak sekali digunakan, karena cara ini dinilai lebih efektif dan efisien dibandingkan
jika kita harus mengisi satu per satu data siswa dalam suatu tabel dsb. Pada kesempatan kali
ini saya akan berbagi tips tentang Cara Mudah Membuat Form Input Data Siswa Berbasis Excel
Dengan VBA. Nah berikut adalah langkah-langkahnya :
1. Buat sebuah dokumen baru, kemudian aktifkan VBA editor dengan menekan kombinasi
keyboard ALT+F11, setelah itu klik tab Insert, selanjutnya klik UserForm.

Gambar 1.1

2. Setelah menyisipkan sebuah form baru, kita dapat edit ukuran form nya sesuai dengan
kebutuhan, kemudian buat sebuah label dengan menggunakan Toolbox dan letakkan
pada Form kemudian ganti Caption sesuai dengan yang kita tulis pada label tersebut.
Untuk lebih jelasnya, silahkan teman-teman lihat Gambar 2.1
Gambar 2.1
3. Setelah label NIS terbuat silakan buat label berikutnya sesuai dengan Field diatas. Cara
membuatnya sama dengan tahap 2, sehingga form akan tampak seperti gambar di bawah
ini (Gambar 3.1). Jangan lupa ganti properties Caption sesuai dengan fieldnya.

Gambar 3.1
4. Selanjutnya buatlah beberapa TextBox sebagai syarat untuk pengisian data, dengan
cara klik TextBox pada Toolbox kemudan drag ke UserForm, misalnya untuk membuat
Textbox NIS jangan lupa ganti properties Name menjadi "TXTNis" untuk mendefinisikan
supaya tidak lupa dalam membuat kode program VBA nya.
Dan seterusnya buat beberapa textbox sesuai kebutuhan. Kita bisa juga menggunakan
teknik copy paste agar waktu pengerjaan lebih efisien.

Gambar 4.1

Selanjutnya silakan teman-teman ganti propertis name menjadi seperti berikut ini :
Textbox1 ganti dengan TXTNis
Textbox2 ganti dengan TXTNama
Textbox3 ganti dengan TXTTempatLahir
Textbox4 ganti dengan TXTTglLahir
Textbox5 ganti dengan TXTALamat
Textbox6 ganti dengan TXTNISN
Textbox7 ganti dengan TXTHP
Textbox8 ganti dengan TXTSKHUN
Textbox9 ganti dengan TXTIjasah
Textbox10 ganti dengan TXTNamaIbu
Textbox11 ganti dengan TXTThnLahirIbu
Textbox12 ganti dengan TXTPekIbu
Textbox13 ganti dengan TXTNamaAyah
Textbox14 ganti dengan TXTThnLahirAyah
Textbox15 ganti dengan TXTPekAyah
Textbox16 ganti dengan TXTPengAyah
Textbox17 ganti dengan TXTAlamatOrtu

Gambar 4.2

Untuk ComboBox, silakan teman-teman buat dengan cara klik Toolbox, kemudian klik
Combobox dan jangan lupa untuk mengganti properties name nya.
ComboBox1 ganti dengan CBO CBOKelamin
ComboBox2 ganti dengan CBO CBOPendidikanIbu
ComboBox3 ganti dengan CBO CBOPendidikanAyah
5. Selanjutnya buatlah tombol menggunakan CommandButton, dengan cara klik Toolbox,
kemudian klik CommandButton. Sebagai contoh, buatlah tombol "Simpan", tombol "Cari
Data Siswa" dan tombol "Close". Untuk masing-masing tombol silakan ganti properties
name menjadi :
CommandButton1 ganti dengan "TBLSimpan"
CommandButton2 ganti dengan "TBLCariData"
CommandButton3 ganti dengan “CMDClose"
Untuk lebih jelasnya, silahkan teman-teman perhatikan gambar di bawah ini :

Gambar 5.1

6. Langkah berikutnya adalah langkah membuat script VBA. Silahkan View Code dengan
cara klik ikon View Code atau klik kanan lalu klik View Code kemudian tuliskan script
berikut untuk membuat initial pada UserForm.
Private Sub UserForm_Initialize()
With CBOKelamin
.AddItem "Laki-Laki"
.AddItem "Perempuan"
End With
With CBOPendidikanIbu
.AddItem "Tidak Sekolah"
.AddItem "SD"
.AddItem "SMP"
.AddItem "SMA"
.AddItem "D1"
.AddItem "D2"
.AddItem "D3"
.AddItem "S1"
.AddItem "S2"
.AddItem "S3"
End With
With CBOPendidikanAyah
.AddItem "Tidak Sekolah"
.AddItem "SD"
.AddItem "SMP"
.AddItem "SMA"
.AddItem "D1"
.AddItem "D2"
.AddItem "D3"
.AddItem "S1"
.AddItem "S2"
.AddItem "S3"
End With
End Sub

7. Setelah itu, kita akan membuat sebuah script VBA untuk “Simpan” data siswa. Silahkan
teman-teman ketikkan script VBA nya di bawah ini
Private Sub TBLSimpan_Click()
Dim iRow As Long
Dim Ws As Worksheet
Set Ws = Worksheets("databasesiswa")

'menemukan baris kosong pada database siswa


iRow = Ws.Cells(Rows.Count, 1) _
.End(xlUp).Offset(1, 0).Row

'check untuk sebuah nis


If Trim(Me.TXTNis.Value) = "" Then
Me.TXTNis.SetFocus
MsgBox "Masukan NIS terlebih dahulu Kang.."
Exit Sub
End If

'copy data ke database siswa


Ws.Cells(iRow, 1).Value = Range("X1").Value
Ws.Cells(iRow, 2).Value = Me.TXTNis.Value
Ws.Cells(iRow, 3).Value = Me.TXTNama.Value
Ws.Cells(iRow, 4).Value = Me.TXTTempatLahir.Value
Ws.Cells(iRow, 5).Value = Me.TXTTglLahir.Value
Ws.Cells(iRow, 6).Value = Me.CBOKelamin.Value
Ws.Cells(iRow, 7).Value = Me.TXTAlamat.Value
Ws.Cells(iRow, 8).Value = Me.TXTNISN.Value
Ws.Cells(iRow, 9).Value = Me.TXTHP.Value
Ws.Cells(iRow, 10).Value = Me.TXTSKHUN.Value
Ws.Cells(iRow, 11).Value = Me.TXTIjasah.Value
Ws.Cells(iRow, 12).Value = Me.TXTNamaIbu.Value
Ws.Cells(iRow, 13).Value = Me.TXTThnLahirIbu.Value
Ws.Cells(iRow, 14).Value = Me.TXTPekIbu.Value
Ws.Cells(iRow, 15).Value = Me.CBOPendidikanIbu.Value
Ws.Cells(iRow, 16).Value = Me.TXTNamaAyah.Value
Ws.Cells(iRow, 17).Value = Me.TXTThnAyah.Value
Ws.Cells(iRow, 18).Value = Me.TXTPekAyah.Value
Ws.Cells(iRow, 19).Value = Me.CBOPendidikanAyah.Value
Ws.Cells(iRow, 20).Value = Me.TXTPengAyah.Value
Ws.Cells(iRow, 21).Value = Me.TXTAlamat.Value

'clear data siswa


Me.TXTNis.Value = ""
Me.TXTNama.Value = ""
Me.TXTTempatLahir.Value = ""
Me.TXTTglLahir.Value = ""
Me.CBOKelamin.Value = ""
Me.TXTAlamat.Value = ""
Me.TXTNISN.Value = ""
Me.TXTHP.Value = ""
Me.TXTSKHUN.Value = ""
Me.TXTIjasah.Value = ""
Me.TXTNamaIbu.Value = ""
Me.TXTThnLahirIbu.Value = ""
Me.TXTPekIbu.Value = ""
Me.CBOPendidikanIbu.Value = ""
Me.TXTNamaAyah.Value = ""
Me.TXTThnAyah.Value = ""
Me.TXTPekAyah.Value = ""
Me.CBOPendidikanAyah.Value = ""
Me.TXTPengAyah.Value = ""
Me.TXTAlamatOrtu.Value = ""
Me.TXTNis.SetFocus

'Simpan data
Application.ActiveWorkbook.Save
End Sub

8. Langkah berikutnya yaitu membuat perintah CLOSE. Silakan teman-teman double


klik tombol CLOSE, kemudian ketikkan script nya dibawah ini :

Private Sub CMDClose_Click()


Unload Me
End Sub

9. Setelah itu, buatlah sebuah validasi data untuk textbox yang berisi data angka agar data
yang diinput hanya berupa data angka buka huruf. Apabila data yang dimasukan pada
textbox bukan berupa data angka maka secara otomatis akan menampilkan pesan
error. Silahkan teman-teman ketikkan script VBA nya di bawah ini :
Private Sub HanyaAngka()
If TypeName(Me.ActiveControl) = "TextBox" Then
With Me.ActiveControl
If Not IsNumeric(.Value) And .Value <> vbNullString Then
MsgBox "Maaf, Masukan data angka saja"
.Value = vbNullString
End If
End With
End If
End Sub

10. Pada tahap ini, kita bisa menggunakan variasi, ketika textbox aktif atau dipilih
maka warna akan berubah. Script berikut ini juga akan menghasilkan perintah error
yang merupakan pemanggilan prosedur dari tahap 9 diatas.

Private Sub TXTNISN_Change()


HanyaAngka
End Sub

Private Sub TXTHP_Change()


HanyaAngka
End Sub

Private Sub txtnis_Enter()


TXTNis.BackColor = &H80000005
End Sub
Private Sub txtnis_Exit(ByVal Cancel As MSForms.ReturnBoolean)
HanyaAngka
TXTNis.BackColor = &HE0E0E0
End Sub

Private Sub txtnama_enter()


TXTNama.BackColor = &H80000005
End Sub
Private Sub txtnama_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TXTNama.BackColor = &HE0E0E0
End Sub

Private Sub txttempatlahir_enter()


TXTTempatLahir.BackColor = &H80000005
End Sub
Private Sub txttempatlahir_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TXTTempatLahir.BackColor = &HE0E0E0
End Sub

Private Sub txttgllahir_enter()


TXTTglLahir.BackColor = &H80000005
End Sub
Private Sub txttgllahir_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TXTTglLahir.BackColor = &HE0E0E0
End Sub

Private Sub txtalamat_Enter()


TXTAlamat.BackColor = &H80000005
End Sub
Private Sub txtalamat_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TXTAlamat.BackColor = &HE0E0E0
End Sub

Private Sub cbokelamin_Enter()


CBOKelamin.BackColor = &H80000005
End Sub
Private Sub cbokelamin_Exit(ByVal Cancel As MSForms.ReturnBoolean)
CBOKelamin.BackColor = &HE0E0E0
End Sub

Private Sub txtnisn_Enter()


TXTNISN.BackColor = &H80000005
End Sub
Private Sub txtnisn_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TXTNISN.BackColor = &HE0E0E0
End Sub

Private Sub txthp_Enter()


TXTHP.BackColor = &H80000005
End Sub
Private Sub txthp_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TXTHP.BackColor = &HE0E0E0
End Sub

Private Sub txtskhun_Enter()


TXTSKHUN.BackColor = &H80000005
End Sub
Private Sub txtskhun_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TXTSKHUN.BackColor = &HE0E0E0
End Sub

Private Sub txtijasah_Enter()


TXTIjasah.BackColor = &H80000005
End Sub
Private Sub txtijasah_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TXTIjasah.BackColor = &HE0E0E0
End Sub

Private Sub txtnamaibu_Enter()


TXTNamaIbu.BackColor = &H80000005
End Sub
Private Sub txtnamaibu_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TXTNamaIbu.BackColor = &HE0E0E0
End Sub

Private Sub txtthnlahiribu_Enter()


TXTThnLahirIbu.BackColor = &H80000005
End Sub
Private Sub txtthnlahiribu_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TXTThnLahirIbu.BackColor = &HE0E0E0
End Sub

Private Sub txtpekibu_Enter()


TXTPekIbu.BackColor = &H80000005
End Sub
Private Sub txtpekibu_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TXTPekIbu.BackColor = &HE0E0E0
End Sub

Private Sub cbopendidikanibu_Enter()


CBOPendidikanIbu.BackColor = &H80000005
End Sub
Private Sub cbopendidikanibu_Exit(ByVal Cancel As MSForms.ReturnBoolean)
CBOPendidikanIbu.BackColor = &HE0E0E0
End Sub

Private Sub txtnamaayah_Enter()


TXTNamaAyah.BackColor = &H80000005
End Sub
Private Sub txtnamaayah_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TXTNamaAyah.BackColor = &HE0E0E0
End Sub

Private Sub txtthnayah_Enter()


TXTThnAyah.BackColor = &H80000005
End Sub
Private Sub txtthnayah_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TXTThnAyah.BackColor = &HE0E0E0
End Sub

Private Sub txtpekayah_Enter()


TXTPekAyah.BackColor = &H80000005
End Sub
Private Sub txtpekayah_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TXTPekAyah.BackColor = &HE0E0E0
End Sub

Private Sub cbopendidikanayah_Enter()


CBOPendidikanAyah.BackColor = &H80000005
End Sub
Private Sub cbopendidikanayah_Exit(ByVal Cancel As
MSForms.ReturnBoolean)
CBOPendidikanAyah.BackColor = &HE0E0E0
End Sub

Private Sub txtpengayah_Enter()


TXTPengAyah.BackColor = &H80000005
End Sub
Private Sub txtpengayah_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TXTPengAyah.BackColor = &HE0E0E0
End Sub

Private Sub txtalamatortu_Enter()


TXTAlamatOrtu.BackColor = &H80000005
End Sub
Private Sub txtalamatortu_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TXTAlamatOrtu.BackColor = &HE0E0E0
End Sub

11. Untuk tahap terakhir silakan buat sebuah Worksheet untuk menyimpan database
yang telah disimpan apabila menekan tombol simpan data maka data siswa akan
tersimpan pada sheet yang telah ditentukan misalnya saya ganti sheet untuk
menyimpan database dengan nama "DatabaseSiswa"

12. Setelah sebuah userform untuk input data siswa berhasil dibuat, untuk menjalankan
nya silakan teman-teman coba klik tab RUN, sehingga hasil akhirnya akan tampak
seperti Gambar di bawah ini (Gambar 6.1).

Gambar 6.1

Nah, demikianlah langkah-langkah atau cara sederhana membuat form input data
siswa berbasis Excel dengan VBA.
Silahkan mencoba
Semoga bermanfaat ^_^

Anda mungkin juga menyukai