Senin, 24 April 2017

Bagaimana Membuat Form pada Ms. Excel

Baiklah teman-teman, kali ini saya akan menjelaskan bagaimana caranya membuat formulir atau form pada Ms.Excel

  • Buka Ms. Excel yang akan dibuat form input data siswa.

  • Untuk mengaktifkan VBA kalian cukup menekan shorcut ALT+F11 secara bersamaan. kemudian klik insert dan klik User Form.

  • Akan muncul form, pada form ini kalian dapat menyesuaikan ukurannya. kemudian kalian harus menyisipkan label dengan menggunakan Toolbox dan letakkan pada Form kemudian ganti Caption.


  • 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 jangan lupa ganti properties Name untuk mendefinisikan supaya tidak lupa dalam membuat kode program VBA nya.
    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

  • Untuk ComboBox silakan buat dengan menggunakan Toolbox dan ganti properties name nya
ComboBox1 ganti dengan CBO CBOKelamin
ComboBox2 ganti dengan CBO CBOPendidikanIbu
ComboBox3 ganti dengan CBO CBOPendidikanAyah



  • 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"
  • Hingga menjadi tampilan seperti gambar di bawah ini

  • Langkah berikutnya adalah langkah membuat script VBA. dan 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 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

  • Kemudian 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 huruf. 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
 
  •  Seperti di bawah ini

  • 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". Tahapan membuat sebuah userform untuk input data siswa sudah berhasil dibuat dan untuk menjalankan nya silakan coba klik RUN.

SELESAI

Tidak ada komentar:

Posting Komentar