Selasa, 18 April 2017

CARA MEMBUAT APLIKASI BERBASIS VISUAL (VBA) INPUT DATA SISWA DENGAN MACRO PADA MS.EXCELL

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 :

  1. 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

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”.







Nah kalau sudah dibuat ganti nama combobox sesuai label
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       
Share:

0 komentar:

Posting Komentar

Blogroll

Jumlah Visitor

Diberdayakan oleh Blogger.
Flag Counter

Jam berapa ?

Welcome

Recent Posts

Unordered List

Pages

Theme Support

Blog ini berisi tugas selama saya kuliah dan sharing saya tentang hobi traveling saya. Selamat menikmati ^^

Blogger templates