Assalamualaikum WR WB
Saya Khozin Fuadi kembali lagi untuk berbagi ilmu nih ! Kali
ini saya akan membahas tentang Macro Pada MS.Excell.
Apa itu Macro ? Macro adalah salah satu fasilitas yang ada
pada MS.Excell yang memungkinkan penggunanya untuk membuat sebuah VBA (Visual
Basic for Applications) untuk membuat suatu aplikasi yang dapat memudahkan
proses imput data. Pada contoh kali ini saya akan membuat suatu tutorial “Cara
membuat aplikasi imput data siswa” menggunakan VBA/Macro pada MS.Excell.
Langsung saja ini dia tahapan-tahapan yang harus diikuti :
- Membuka VBA
Setelah membuka
MS.Excell langsung saja tekan kombinasi pada keyboard yaitu tombol ALT + F11.
Lalu akan muncul tampilan seperti ini.
2. Membuat suatu UserForm
Membuat
userform cukup dengan membuka menu insert lalu klik UserForm. UserForm adalah
basis kita untuk membuat VBAnya seperti kanvas untuk melukis. Kita dapat
mengeditnya sesuai keinginan.
3 3.
Membuat Label
Cara membuat label adalah dengan menggunakan Toolbox yang
ada disebelah Userform kita.
Lalu ganti caption pada label dengan mengklik tulisan “label
1” sekali dan buatlah label lagi sampai terbentuk menjadi seperti ini :
4. 4. Membuat TextBox
Selanjutnya ialah membuat textbox sebagai field yang akan
diisikan pada saat proses entry datanya. Untuk membuat textbox bisa mengklik
pada toolbox dan menyeret pada userform. Jangan lupa mengganti nama textbox
sesuai label yang diisi misalnya untuk NIS dapat diganti dengan “TXTNis”.
Lalu buat lah textbox sesuai yang diinginkan
Dan gantilah setiap nama dari textbox susai dengan Label
yang telah dibuat. Hal ini juga bertujuan untuk memudahkan membuat code pada
userform.
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
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
5. 5. Membuat ComboBox
ComboBox adalah suatu field pengisian data tetapi telah
disediakan beberapa opsi atau pilihan yang tinggal kita pilih. Cara membuatnya
tinggal mengklik combobox pada ToolBox dan menyeretnya ke userform. Pada contoh
kali ini kita gunakan untuk memasukan data “Jenis Kelamin” dan “Pendidikan”.
ComboBox1 ganti dengan CBO CBOKelamin
ComboBox2 ganti dengan CBO CBOPendidikanIbu
ComboBox3 ganti dengan CBO CBOPendidikanAyah
Hasil akhir dari UserFormnya kira-kira seperti ini
6. 6. Membuat CommandButton
CommandButton adalah tombol yang memberikan instruksi sesuai
script yang dibuat.kita dapat membuat commandbutton melalui ToolBox dan
menyeretnya ke userform.
Buatlah seperti gambar diatas dan ganti namanya menjadi
"TBLSimpan", "TBLCariData", CMDClose".
7. 7. Membuat Script VBA
Nah pada tahap ini kita akan membuat script atau barisan
bahasa pemograman yang berisi perintah untuk melakukan sesuatu.
Silahkan
buka tampilan scriptnya dengan meng klik kanan pada userform dan klik view
code. Akan tampil seperti berikut.
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
Selanjutnya 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 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
Membuat perintah
CLOSE silakan ketikkan script nya dibawah ini dengan cara double klik tombol
CLOSE
Private Sub CMDClose_Click()
Unload Me
End Sub
Membuat sebuah
validasi data untuk textbox yang berisi data angka agar data yang diinput hanya
berupa data angka buka hurfu. Apabila data yang dimasukan pada textbox bukan
berupa data angka maka secara otomatis akan menampilkan pesan error dan ini dia
script nya
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
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 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
8.
Membuat WorkSheet sebagai penyimpan data
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"
Selesai !!
Sudah selesai tahapan
pembuatan Visual Basic Application dengan menggunakan Macro pada MS.Excell
Silahkan klik RUN untuk
mencoba menggunaka VBA nya.
Jangan lupa save file
Macronya dengan mengganti formatnya menjadi seperti ini
Agar pada saat kita ingin
membuka lagi dapat tertera juga macro yang kita buat.
Sekian dari saya Khozin
Fuadi
Semoga Bermanfaat
Untuk Download Filenya :
Wassalamualaikaum WR WB
0 komentar:
Posting Komentar