Wednesday, May 3, 2017
Membuat Form Isian Data Sederhana dengan Macros di Excel
Di Postingan sebelumnya, saya sudah menjelaskan apa itu Macros dan contoh pemakaiannya.
Nah, di postingan kali ini, saya akan membuat Form Isian Data yang lebih sederhana.
Simak, Yuk!
1. Buka Aplikasi Excel
2. Rename 'Sheet1' Menjadi 'PARTSDATA'
3. Buat Heading Tabel seperti gambar dibawah ini
Simpan File dengan type 'Excel Macro Enabled Workbook' dan File Name 'Data Barang'
4. Pada menu View, pilih Macros lalu klik View Macros
5. Maka akan muncul tampilan seperti ini
Isi Macro Name dengan 'Form' lalu klik 'Create'
6. Lalu akan muncul tampilan seperti ini
7. Insert UserForm dengan cara
8. Ketika Form sudah muncul, buatlah tampilan seperti ini
dengan cara:
- Gunakan Label pada toolbox untuk Kode, Nama Barang, Satuan dan Harga
Label1 Caption diganti dengan “Kode”
Label2 Caption diganti dengan “Nama Barang”
Label3 Caption diganti dengan “Satuan”
Label4 Caption diganti dengan “Harga”
- Gunakan TextBox sebagai syarat untuk pengisian data
TextBox1 Name diganti dengan “tkode”
TextBox2 Name diganti dengan “tnama”
TextBox3 Name diganti dengan “tsatuan”
TextBox4 Name diganti dengan “tharga”
- Gunakan Command Button untuk membuat 'SIMPAN' dan 'TUTUP'
command button1 Caption diganti dengan “TAMBAH”
command button1 Name diganti dengan “CMDTMBH”
command button2 Caption diganti dengan “TUTUP”
command button2 Name diganti dengan “CMDTTP”
9. Kita lanjutkan dengan pembuatan Code dengan cara, Klik kanan form dan pilih view code maka akan muncul tampilan seperti ini
10. Tuliskan Kode dibawah ini
Private Sub CMDTMBH_Click()
Dim iRow As Long
Dim ws As Worksheet
Set ws = Worksheets(“PARTSDATA”)
‘menemukan baris kosong pada database
iRow = ws.Cells(Rows.Count, 1) _
.End(xlUp).Offset(1, 0).Row
‘check untuk sebuah kode
If Trim(Me.tkode.Value) = “” Then
Me.tkode.SetFocus
MsgBox “Masukan Kode Barang”
Exit Sub
End If
‘copy data ke database
ws.Cells(iRow, 1).Value = Me.tkode.Value
ws.Cells(iRow, 2).Value = Me.tnama.Value
ws.Cells(iRow, 3).Value = Me.tsatuan.Value
ws.Cells(iRow, 4).Value = Me.tharga.Value
‘clear data
Me.tkode.Value = “”
Me.tnama.Value = “”
Me.tsatuan.Value = “”
Me.tharga.Value = “”
Me.tkode.SetFocus
End Sub
11. Pengisian Kode untuk tombol tutup dituliskan dengan kode dibaawah ini
Private Sub CMDTTP_Click()
Unload Me
End Sub
12. Untuk menampilkan peringatan "MAKE TOMBOL ATUH KANG!" saat seseorang menutup melalui tanda X, buatlah kode berikut
Private Sub UserForm_QueryClose(Cancel As Integer, _
CloseMode As Integer)
If CloseMode = vbFormControlMenu Then
Cancel = True
MsgBox “MAKE TOMBOL ATUH KANG!”
End If
End Sub
13. Klik kanan module lalu isikan kode berikut
Sub FORM()
UserForm1.Show
End Sub
14. Setelah selesai melakukan pengisian kode, kembali lagi ke Excel lalu buatlah lingkaran seperti ini dengan menggunakan fasilitas 'Shapes'
15. Setelah selesai, klik kanan tombol lalu pilih 'Assign Marco'
16. Ketika muncul tampilan seperti ini, pilih Formlalu klik OK.
17. Selesai! Excel akan otomatis menampilkan ini sesuai data yang telah kita buat
18. Sesuai kode yang telah kita tuliskan pula, ketika seseorang menutup melalui tombol X maka akan muncul peringatan seperti ini
Sekian Informasi yang dapat saya bagikan. Semoga membantu dan dapat bermanfaat.
Macro untuk Form entry data (excel)
Macro adalah Sebuah fasilitas yang dimiliki Microsoft Excel yang dapat digunakan untuk merekam semua tindakan dan perintah yang dilakukan pada program Excel. Alat bantu yang digunakan dalam pembuatan perintah maupun perekaman Macro adalah dengan menggunakan Visual Basic Editor.
Nah, di tutorial kali ini saya akan menjelaskancara membuat Form Input Data.
Simak, Yuk!
1. Buka Excel lalu tekan kombinasi tombolALT+F11 pada keyboard. VBA editor telah aktif dan akan muncul tampilan seperti ini
2. Pada menu insert, pilih UserForm
Lalu akan muncul tampilan seperti ini
Sesuaikan ukuran form dengan space yang dibutuhkan.
3. Lalu isikan form dengan tampilan seperti ini
dengan cara;
- gunakan Label pada ToolBox untuk membuat NIS, Nama Lengkap, Tempat Lahir, dst.
Setiap setelah membuat Label, jangan lupa untuk mengubah caption sesuai dengan data yang dibutuhkan.
- gunakan Combo Box pada ToolBox sebagai syarat untuk pengisian data pada Pendidikan Ibu, Pendidikan Ayah, dan Jenis Kelamin
Untuk ComboBox sganti properties name nya dengan
ComboBox1 ganti dengan CBOKelamin
ComboBox2 ganti dengan CBOPendidikanIbu
ComboBox3 ganti dengan CBOPendidikanAyah
- gunakan TextBox pada ToolBox sebagai syarat untuk pengisian data NIS, Nama Lengkap, Tempat Lahir, dll (kecuali Pendidikan Ibu, Pendidikan Ayah, dan Jenis Kelamin)
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 TXTThnAyah
Textbox15 ganti dengan TXTPekAyah
Textbox16 ganti dengan TXTPengAyah
Textbox17 ganti dengan TXTAlamatOrtu
- Gunakan CommandButton untuk Simpan, Cari Data Siswa, dan Close
Untuk masing-masing tombol silakan ganti properties name menjadi "TBLSimpan", "TBLCariData", CMDClose"
4. Langkah selanjutnya, View Code dengan cara Klik Kanan pada Userform dan pilih view code.
dan akan muncul tampilan seperti ini
5. 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
6. Ketikkan script VBA nya di bawah ini untuk script data siswa
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
7. Membuat perintah CLOSE silakan ketikkan script nya dibawah ini dengan cara double klik tombol CLOSE
Private Sub CMDClose_Click()
Unload Me
End Sub
8. Membuat script agar apabila data yang dimasukan pada textbox bukan berupa data angka maka secara otomatis akan menampilkan pesan error
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
9. Untuk membuat perubahan warna ketika textbox dipilih
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
10. Tahap terakhir, rename Sheet1 dengan 'DataBaseSiswa' untuk menyimpan database. Maka, ketika database disimpan, akan tersimpan pada sheet tsb.
11. Untuk menjalankan userformnya pilih menu Run lalu Runsub/Userform
12. Otomatis akan muncul tampilan seperti ini
13. Ketika anda klik tombol Simpan saat NIS masih kosong, sesuai code akan muncul perintah ini
Selesai!
Demikian informasi yang dapat saya bagikan, semoga bermanfaat dan dapat membantu. :)
Subscribe to:
Posts (Atom)