Cara Membuat Form Input Data Siswa dengan Macro atau VBA pada Microsoft Excel
Selamat siang, readers! Kali ini, saya akan memberikan tutorial membuat form input data siswa dengan Macro atau VBA pada Microsoft Excel. Form input data siswa ini berisikan mulai dari NIS, NISN, Nama siswa, Tempat lahir, tanggal lahir, jenis kelamin, alamat, No. HP, No, SKHUN, No. Ijazah, Nama Ibu kandung, tahun lahir ibu kandung, pekerjaan ibu, pendidikan ibu, nama ayah, tahun lahir ayah, pekerjaan ayah, pendidikan ayah, penghasilan orang tua, alamat orang tua.
STEP 5
Dengan berakhirnya step-by-step ini, maka selesai pula form input data siswa yang kita buat. Untuk menjalankan macro yang telah kita buat, klik tombol RUN.
Untuk mendownload file contoh klik disini
STEP 1
Buka file ms. excel baru kemudian aktifkan VBA editor dengan menekan kombinasi keyboard ALT+F11, kemudian cari menu Insert dan klik UserForm.
STEP 2
Setelah menyisipkan sebuah form baru, edit ukuran form sesuai dengan kebutuhan kemudian buat sebuah label dengan menggunakan Toolbox, dan letakkan pada Form kemudian ganti Caption menjadi NIS.
STEP 3
Setelah label NIS terbuat, silakan buat label berikutnya sesuai dengan Field diatas dan caranya sama dengan tahap 2 hingga menjadi seperti tampilan berikut. Jangan lupa ganti properties Caption sesuai dengan fieldnya.
STEP 4
Untuk langkah ke-4 Anda harus membuat beberapa TextBox sebagai syarat untuk pengisian data. Bagi yang belum tahu cara membuat textbox caranya adalah klik TextBox pada Toolbox kemudan drag ke UserForm misalnya untuk membuat textbox nis seperti berikut jangan lupa ganti properties Name menjadi "TXTNis" untuk mendefinisikan supaya tidak lupa dalam membuat kode program VBA nya.
Dari langkah ke-4 tersebut silakan buat beberapa textbox Anda bisa juga menggunakan teknik copy paste. dan silakan ganti properties name menjadi seperti berikut ini.
Textbox1 ganti dengan TXTNisTextbox2 ganti dengan TXTNamaTextbox3 ganti dengan TXTTempatLahirTextbox4 ganti dengan TXTTglLahirTextbox5 ganti dengan TXTAlamatTextbox6 ganti dengan TXTNISNTextbox7 ganti dengan TXTHPTextbox8 ganti dengan TXTSKHUNTextbox9 ganti dengan TXTIjazahTextbox10 ganti dengan TXTNamaIbuTextbox11 ganti dengan TXTThnLahirIbuTextbox12 ganti dengan TXTPekIbuTextbox13 ganti dengan TXTNamaAyahTextbox14 ganti dengan TXTThnLahirAyahTextbox15 ganti dengan TXTPekAyahTextbox16 ganti dengan TXTPengAyahTextbox17 ganti dengan TXTAlamatOrtu
Untuk ComboBox silakan buat dengan menggunakan Toolbox dan ganti properties name nyaComboBox1 ganti dengan CBO CBOKelaminComboBox2 ganti dengan CBO CBOPendidikanIbuComboBox3 ganti dengan CBO CBOPendidikanAyah
STEP 5
Untuk tahap ke-5 silakan buat 3 buah tombol dengan menggunakan CommandButton seperti diatas. Yang pertama tombol "Simpan", ke-2 tombol "Cari Data Siswa", dan yang ke-3 "Close". Untuk masing-masing tombol silakan ganti properties name menjadi "TBLSimpan", "TBLCariData", "CMDClose"
Untuk yang belum tahu cara membuat CommandButton, caranya hampir sama dengan membuat textbox tetapi disini toolbox yang dipake adalah CommandButton. Jadi kalo untuk membuat tiga buah tombol maka kita harus membuat 3 buah CommandButton.
STEP 6
Langkah berikutnya adalah langkah membuat script VBA. Yang pertama silakan View Code kemudian tuliskan script berikut untuk membuat initial pada UserForm
Private Sub UserForm_Initialize()With CBOKelamin .AddItem "Laki-Laki" .AddItem "Perempuan"End WithWith CBOPendidikanIbu .AddItem "Tidak Sekolah" .AddItem "SD" .AddItem "SMP" .AddItem "SMA" .AddItem "D1" .AddItem "D2" .AddItem "D3" .AddItem "S1" .AddItem "S2" .AddItem "S3"End WithWith CBOPendidikanAyah .AddItem "Tidak Sekolah" .AddItem "SD" .AddItem "SMP" .AddItem "SMA" .AddItem "D1" .AddItem "D2" .AddItem "D3" .AddItem "S1" .AddItem "S2" .AddItem "S3"End WithEnd Sub
STEP 7
Tahap ke-7 kita akan membuat sebuah script VBA untuk simpan data siswa silakan ketikkan script VBA nya di bawah ini
Private Sub TBLSimpan_Click()Dim iRow As LongDim Ws As WorksheetSet Ws = Worksheets("databasesiswa")
'menemukan baris kosong pada database siswaiRow = Ws.Cells(Rows.Count, 1) _ .End(xlUp).Offset(1, 0).Row
'check untuk sebuah nisIf Trim(Me.TXTNis.Value) = "" Then Me.TXTNis.SetFocus MsgBox "Masukan NIS terlebih dahulu Kang.." Exit SubEnd If
'copy data ke database siswaWs.Cells(iRow, 1).Value = Range("X1").ValueWs.Cells(iRow, 2).Value = Me.TXTNis.ValueWs.Cells(iRow, 3).Value = Me.TXTNama.ValueWs.Cells(iRow, 4).Value = Me.TXTTempatLahir.ValueWs.Cells(iRow, 5).Value = Me.TXTTglLahir.ValueWs.Cells(iRow, 6).Value = Me.CBOKelamin.ValueWs.Cells(iRow, 7).Value = Me.TXTAlamat.ValueWs.Cells(iRow, 8).Value = Me.TXTNISN.ValueWs.Cells(iRow, 9).Value = Me.TXTHP.ValueWs.Cells(iRow, 10).Value = Me.TXTSKHUN.ValueWs.Cells(iRow, 11).Value = Me.TXTIjazah.ValueWs.Cells(iRow, 12).Value = Me.TXTNamaIbu.ValueWs.Cells(iRow, 13).Value = Me.TXTThnLahirIbu.ValueWs.Cells(iRow, 14).Value = Me.TXTPekIbu.ValueWs.Cells(iRow, 15).Value = Me.CBOPendidikanIbu.ValueWs.Cells(iRow, 16).Value = Me.TXTNamaAyah.ValueWs.Cells(iRow, 17).Value = Me.TXTThnAyah.ValueWs.Cells(iRow, 18).Value = Me.TXTPekAyah.ValueWs.Cells(iRow, 19).Value = Me.CBOPendidikanAyah.ValueWs.Cells(iRow, 20).Value = Me.TXTPengAyah.ValueWs.Cells(iRow, 21).Value = Me.TXTAlamat.Value
'clear data siswaMe.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.TXTIjazah.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 dataApplication.ActiveWorkbook.SaveEnd Sub
'menemukan baris kosong pada database siswaiRow = Ws.Cells(Rows.Count, 1) _ .End(xlUp).Offset(1, 0).Row
'check untuk sebuah nisIf Trim(Me.TXTNis.Value) = "" Then Me.TXTNis.SetFocus MsgBox "Masukan NIS terlebih dahulu Kang.." Exit SubEnd If
'copy data ke database siswaWs.Cells(iRow, 1).Value = Range("X1").ValueWs.Cells(iRow, 2).Value = Me.TXTNis.ValueWs.Cells(iRow, 3).Value = Me.TXTNama.ValueWs.Cells(iRow, 4).Value = Me.TXTTempatLahir.ValueWs.Cells(iRow, 5).Value = Me.TXTTglLahir.ValueWs.Cells(iRow, 6).Value = Me.CBOKelamin.ValueWs.Cells(iRow, 7).Value = Me.TXTAlamat.ValueWs.Cells(iRow, 8).Value = Me.TXTNISN.ValueWs.Cells(iRow, 9).Value = Me.TXTHP.ValueWs.Cells(iRow, 10).Value = Me.TXTSKHUN.ValueWs.Cells(iRow, 11).Value = Me.TXTIjazah.ValueWs.Cells(iRow, 12).Value = Me.TXTNamaIbu.ValueWs.Cells(iRow, 13).Value = Me.TXTThnLahirIbu.ValueWs.Cells(iRow, 14).Value = Me.TXTPekIbu.ValueWs.Cells(iRow, 15).Value = Me.CBOPendidikanIbu.ValueWs.Cells(iRow, 16).Value = Me.TXTNamaAyah.ValueWs.Cells(iRow, 17).Value = Me.TXTThnAyah.ValueWs.Cells(iRow, 18).Value = Me.TXTPekAyah.ValueWs.Cells(iRow, 19).Value = Me.CBOPendidikanAyah.ValueWs.Cells(iRow, 20).Value = Me.TXTPengAyah.ValueWs.Cells(iRow, 21).Value = Me.TXTAlamat.Value
'clear data siswaMe.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.TXTIjazah.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 dataApplication.ActiveWorkbook.SaveEnd Sub
STEP 8
Membuat perintah CLOSE, silakan ketikkan scriptnya dibawah ini dengan cara double klik tombol CLOSE
Private Sub CMDClose_Click()Unload MeEnd Sub
STEP 9
Membuat sebuah validasi data untuk textbox yang berisi data angka agar data yang diinput hanya berupa data angka bukan huruf. Apabila data yang dimasukan pada textbox bukan berupa data angka, maka secara otomatis akan menampilkan pesan error dan ini dia scriptnya
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 IfEnd Sub
STEP 10
Anda bisa menggunakan variasi apabila ketika textbox aktif atau dipilih maka warna akan berubah. Ini dia script nya. Script ini juga akan menghasilkan perintah error yang merupakan pemanggilan prosedur dari tahap 9 diatas.
Private Sub TXTNISN_Change()HanyaAngkaEnd Sub
Private Sub TXTHP_Change()HanyaAngkaEnd Sub
Private Sub txtnis_Enter()TXTNis.BackColor = &H80000005End SubPrivate Sub txtnis_Exit(ByVal Cancel As MSForms.ReturnBoolean)HanyaAngkaTXTNis.BackColor = &HE0E0E0End Sub
Private Sub txtnama_enter()TXTNama.BackColor = &H80000005End SubPrivate Sub txtnama_Exit(ByVal Cancel As MSForms.ReturnBoolean)TXTNama.BackColor = &HE0E0E0End Sub
Private Sub txttempatlahir_enter()TXTTempatLahir.BackColor = &H80000005End SubPrivate Sub txttempatlahir_Exit(ByVal Cancel As MSForms.ReturnBoolean)TXTTempatLahir.BackColor = &HE0E0E0End Sub
Private Sub txttgllahir_enter()TXTTglLahir.BackColor = &H80000005End SubPrivate Sub txttgllahir_Exit(ByVal Cancel As MSForms.ReturnBoolean)TXTTglLahir.BackColor = &HE0E0E0End Sub
Private Sub txtalamat_Enter()TXTAlamat.BackColor = &H80000005End SubPrivate Sub txtalamat_Exit(ByVal Cancel As MSForms.ReturnBoolean)TXTAlamat.BackColor = &HE0E0E0End Sub
Private Sub cbokelamin_Enter()CBOKelamin.BackColor = &H80000005End SubPrivate Sub cbokelamin_Exit(ByVal Cancel As MSForms.ReturnBoolean)CBOKelamin.BackColor = &HE0E0E0End Sub
Private Sub txtnisn_Enter()TXTNISN.BackColor = &H80000005End SubPrivate Sub txtnisn_Exit(ByVal Cancel As MSForms.ReturnBoolean)TXTNISN.BackColor = &HE0E0E0End Sub
Private Sub txthp_Enter()TXTHP.BackColor = &H80000005End SubPrivate Sub txthp_Exit(ByVal Cancel As MSForms.ReturnBoolean)TXTHP.BackColor = &HE0E0E0End Sub
Private Sub txtskhun_Enter()TXTSKHUN.BackColor = &H80000005End SubPrivate Sub txtskhun_Exit(ByVal Cancel As MSForms.ReturnBoolean)TXTSKHUN.BackColor = &HE0E0E0End Sub
Private Sub txtijazah_Enter()TXTIjasah.BackColor = &H80000005End SubPrivate Sub txtijazah_Exit(ByVal Cancel As MSForms.ReturnBoolean)TXTIjasah.BackColor = &HE0E0E0End Sub
Private Sub txtnamaibu_Enter()TXTNamaIbu.BackColor = &H80000005End SubPrivate Sub txtnamaibu_Exit(ByVal Cancel As MSForms.ReturnBoolean)TXTNamaIbu.BackColor = &HE0E0E0End Sub
Private Sub txtthnlahiribu_Enter()TXTThnLahirIbu.BackColor = &H80000005End SubPrivate Sub txtthnlahiribu_Exit(ByVal Cancel As MSForms.ReturnBoolean)TXTThnLahirIbu.BackColor = &HE0E0E0End Sub
Private Sub txtpekibu_Enter()TXTPekIbu.BackColor = &H80000005End SubPrivate Sub txtpekibu_Exit(ByVal Cancel As MSForms.ReturnBoolean)TXTPekIbu.BackColor = &HE0E0E0End Sub
Private Sub cbopendidikanibu_Enter()CBOPendidikanIbu.BackColor = &H80000005End SubPrivate Sub cbopendidikanibu_Exit(ByVal Cancel As MSForms.ReturnBoolean)CBOPendidikanIbu.BackColor = &HE0E0E0End Sub
Private Sub txtnamaayah_Enter()TXTNamaAyah.BackColor = &H80000005End SubPrivate Sub txtnamaayah_Exit(ByVal Cancel As MSForms.ReturnBoolean)TXTNamaAyah.BackColor = &HE0E0E0End Sub
Private Sub txtthnayah_Enter()TXTThnAyah.BackColor = &H80000005End SubPrivate Sub txtthnayah_Exit(ByVal Cancel As MSForms.ReturnBoolean)TXTThnAyah.BackColor = &HE0E0E0End Sub
Private Sub txtpekayah_Enter()TXTPekAyah.BackColor = &H80000005End SubPrivate Sub txtpekayah_Exit(ByVal Cancel As MSForms.ReturnBoolean)TXTPekAyah.BackColor = &HE0E0E0End Sub
Private Sub cbopendidikanayah_Enter()CBOPendidikanAyah.BackColor = &H80000005End SubPrivate Sub cbopendidikanayah_Exit(ByVal Cancel As MSForms.ReturnBoolean)CBOPendidikanAyah.BackColor = &HE0E0E0End Sub
Private Sub txtpengayah_Enter()TXTPengAyah.BackColor = &H80000005End SubPrivate Sub txtpengayah_Exit(ByVal Cancel As MSForms.ReturnBoolean)TXTPengAyah.BackColor = &HE0E0E0End Sub
Private Sub txtalamatortu_Enter()TXTAlamatOrtu.BackColor = &H80000005End SubPrivate Sub txtalamatortu_Exit(ByVal Cancel As MSForms.ReturnBoolean)TXTAlamatOrtu.BackColor = &HE0E0E0End Sub
Private Sub TXTHP_Change()HanyaAngkaEnd Sub
Private Sub txtnis_Enter()TXTNis.BackColor = &H80000005End SubPrivate Sub txtnis_Exit(ByVal Cancel As MSForms.ReturnBoolean)HanyaAngkaTXTNis.BackColor = &HE0E0E0End Sub
Private Sub txtnama_enter()TXTNama.BackColor = &H80000005End SubPrivate Sub txtnama_Exit(ByVal Cancel As MSForms.ReturnBoolean)TXTNama.BackColor = &HE0E0E0End Sub
Private Sub txttempatlahir_enter()TXTTempatLahir.BackColor = &H80000005End SubPrivate Sub txttempatlahir_Exit(ByVal Cancel As MSForms.ReturnBoolean)TXTTempatLahir.BackColor = &HE0E0E0End Sub
Private Sub txttgllahir_enter()TXTTglLahir.BackColor = &H80000005End SubPrivate Sub txttgllahir_Exit(ByVal Cancel As MSForms.ReturnBoolean)TXTTglLahir.BackColor = &HE0E0E0End Sub
Private Sub txtalamat_Enter()TXTAlamat.BackColor = &H80000005End SubPrivate Sub txtalamat_Exit(ByVal Cancel As MSForms.ReturnBoolean)TXTAlamat.BackColor = &HE0E0E0End Sub
Private Sub cbokelamin_Enter()CBOKelamin.BackColor = &H80000005End SubPrivate Sub cbokelamin_Exit(ByVal Cancel As MSForms.ReturnBoolean)CBOKelamin.BackColor = &HE0E0E0End Sub
Private Sub txtnisn_Enter()TXTNISN.BackColor = &H80000005End SubPrivate Sub txtnisn_Exit(ByVal Cancel As MSForms.ReturnBoolean)TXTNISN.BackColor = &HE0E0E0End Sub
Private Sub txthp_Enter()TXTHP.BackColor = &H80000005End SubPrivate Sub txthp_Exit(ByVal Cancel As MSForms.ReturnBoolean)TXTHP.BackColor = &HE0E0E0End Sub
Private Sub txtskhun_Enter()TXTSKHUN.BackColor = &H80000005End SubPrivate Sub txtskhun_Exit(ByVal Cancel As MSForms.ReturnBoolean)TXTSKHUN.BackColor = &HE0E0E0End Sub
Private Sub txtijazah_Enter()TXTIjasah.BackColor = &H80000005End SubPrivate Sub txtijazah_Exit(ByVal Cancel As MSForms.ReturnBoolean)TXTIjasah.BackColor = &HE0E0E0End Sub
Private Sub txtnamaibu_Enter()TXTNamaIbu.BackColor = &H80000005End SubPrivate Sub txtnamaibu_Exit(ByVal Cancel As MSForms.ReturnBoolean)TXTNamaIbu.BackColor = &HE0E0E0End Sub
Private Sub txtthnlahiribu_Enter()TXTThnLahirIbu.BackColor = &H80000005End SubPrivate Sub txtthnlahiribu_Exit(ByVal Cancel As MSForms.ReturnBoolean)TXTThnLahirIbu.BackColor = &HE0E0E0End Sub
Private Sub txtpekibu_Enter()TXTPekIbu.BackColor = &H80000005End SubPrivate Sub txtpekibu_Exit(ByVal Cancel As MSForms.ReturnBoolean)TXTPekIbu.BackColor = &HE0E0E0End Sub
Private Sub cbopendidikanibu_Enter()CBOPendidikanIbu.BackColor = &H80000005End SubPrivate Sub cbopendidikanibu_Exit(ByVal Cancel As MSForms.ReturnBoolean)CBOPendidikanIbu.BackColor = &HE0E0E0End Sub
Private Sub txtnamaayah_Enter()TXTNamaAyah.BackColor = &H80000005End SubPrivate Sub txtnamaayah_Exit(ByVal Cancel As MSForms.ReturnBoolean)TXTNamaAyah.BackColor = &HE0E0E0End Sub
Private Sub txtthnayah_Enter()TXTThnAyah.BackColor = &H80000005End SubPrivate Sub txtthnayah_Exit(ByVal Cancel As MSForms.ReturnBoolean)TXTThnAyah.BackColor = &HE0E0E0End Sub
Private Sub txtpekayah_Enter()TXTPekAyah.BackColor = &H80000005End SubPrivate Sub txtpekayah_Exit(ByVal Cancel As MSForms.ReturnBoolean)TXTPekAyah.BackColor = &HE0E0E0End Sub
Private Sub cbopendidikanayah_Enter()CBOPendidikanAyah.BackColor = &H80000005End SubPrivate Sub cbopendidikanayah_Exit(ByVal Cancel As MSForms.ReturnBoolean)CBOPendidikanAyah.BackColor = &HE0E0E0End Sub
Private Sub txtpengayah_Enter()TXTPengAyah.BackColor = &H80000005End SubPrivate Sub txtpengayah_Exit(ByVal Cancel As MSForms.ReturnBoolean)TXTPengAyah.BackColor = &HE0E0E0End Sub
Private Sub txtalamatortu_Enter()TXTAlamatOrtu.BackColor = &H80000005End SubPrivate Sub txtalamatortu_Exit(ByVal Cancel As MSForms.ReturnBoolean)TXTAlamatOrtu.BackColor = &HE0E0E0End Sub
STEP 11
Untuk tahap terakhir, silakan buat sebuah Worksheet untuk menyimpan database. Apabila menekan tombol simpan data, maka data siswa akan tersimpan pada sheet yang telah ditentukan.
Dengan berakhirnya step-by-step ini, maka selesai pula form input data siswa yang kita buat. Untuk menjalankan macro yang telah kita buat, klik tombol RUN.
Untuk mendownload file contoh klik disini
Selamat mencoba, semoga bermanfaat! :)
Komentar
Posting Komentar