Cara Membuat Form Input di VBA Excel

Cara Membuat Form Input di VBA Excel

Pada artikel kali ini Saya akan berbagi trik yaitu bagaimana cara membuat Form Input di VBA Excel dengan menggunakan Microsoft Excel.

Artikel ini pada awalnya terinspirasi dengan program Visual Basic 6.0 dimana kita dapat membuat sebuah Form Input dengan perintah Tambah Hapus Delete dan lain-lain atau yang lebih dikenal dengan program CRUD.

Namun pada kali ini kita akan membuat program CRUD dengan MS. Excel dengan menggunakan kode VBA. Berikut dibawah ini adalah Gambar hasil dari Program CRUD di MS.Wxcel dengan VBA :

Program CRUD dengan VBA Excel


Bagaimana apakah Anda tertarik untuk membuatnya,berikut adalah langkah-langkahnya agar Anda tidak tersesat :

A. Membuat Desain Sheet

Buka Excel Anda, kemudian desain Sheet seperti Gambar dibawah ini :

Desain sheet

* Perhatikan posisinya harus sama seperti gambar diatas

* Untuk menambahkan Command Input seperti Gambar diatas : buka Tab Developer >>Pilih Insett>>Pilih Button, drag dan tempatkan button sesuai keinginanan,kemudian Edit Button1 menjadi Form Input

Setelah sama dengan desain Gambar diatas, langkah selanjutnya adalah membuat Form :

B Cara Membuat Form Input

Klik Tab Developer>>Pilih Visual Basic>>Pilih Insert>>Use Form

Pada Form1 beri Name: FormInput

Kemudian Desainlah seperti gambar dibawah ini :

Desain Form Input
Agar form sama seperti gambar diatas, ikuti petunjuk keterangan dibawah ini :
No Toll Box Properties Keterangan
1 Label1 Caption : ID Barang
2 Label2 Caption : Nama Barang
3 Label3 Caption :Jenis Barangr
4 Label4 Caption :Harga Barang
5 TextBox1 Name :TBIDBarang
6 TextBox2 Name :TBNamaBarang
7 ComboBox1 Name:CBJenisBarang
8 TextBox3 Name:TBHargaBarang
9 Frame1 Caption : Tombol
10 CommandButton1 Caption : Load Name :BTLoad
11 CommandButton2 Caption: Keluar Name:BTKeluar
12 CommandButton3 Caption : Hapus Name:BTHapus
13 CommandButton4 Caption :Batal Nane:BTBatal
14 CommandButton5 Caption : Simpan NameBTSimpan


Setelah mendesain Form seperti petunjuk diatas, lalu copy-paste kode dibawah ini dengan cara doubel klik form area kosong, lalu copy-Paste kode dibawah ini :


Private Sub BTBatal_Click()
Call BersihForm
TBIDBarang.Text = BuatID
End Sub

Private Sub BTHapus_Click()
Dim DBarea As Range
Dim HC As Range

If TBIDBarang.Text = "" Then
    MsgBox "Silahkan isi ID Barang!", vbInformation, MyApp
    Exit Sub
End If

Set DBarea = Sheet1.Range("B2:B" & GetBaris)
Set HC = DBarea.Find(TBIDBarang.Value, , xlValues, xlWhole)
If HC Is Nothing Then
    MsgBox "Data ID Barang tidak ditemukan!", vbInformation, MyApp
Else
    HC.EntireRow.Delete
    MsgBox "Data berhasil Disimpan!"
End If
TBIDBarang.Text = BuatID
Call Urut
End Sub

Private Sub BTKeluar_Click()
Unload Me
End Sub

Private Sub BTLoad_Click()
Dim DBarea As Range
Dim HC As Range

If TBIDBarang.Text = "" Then
    MsgBox "Silahkan Isi ID Barang", vbCritical, MyApp
    Exit Sub
End If

Set DBarea = Sheet1.Range("B2:B" & GetBaris)
Set HC = DBarea.Find(TBIDBarang, , xlValues, xlWhole)
If HC Is Nothing Then
    MsgBox "ID barang Tidak ditemukan", vbInformation, MyApp
    BersihForm
    TBIDBarang.Text = BuatID
Else
    TBIDBarang.Text = HC.Value
    TBNamaBarang.Text = HC.Offset(0, 1).Value
    CBJenisBarang.Text = HC.Offset(0, 2).Value
    TBHargaBarang.Text = HC.Offset(0, 3).Value
End If
End Sub

Private Sub BTSimpan_Click()
Dim Baris As Long
Dim IsiData As Variant
Dim DBarea As Range, HC As Range

Set DBarea = Sheet1.Range("B2:B" & GetBaris)
Set HC = DBarea.Find(TBIDBarang, , xlValues, xlWhole)
If HC Is Nothing Then
    Baris = GetBaris + 1
Else
    Baris = HC.Row
End If

IsiData = Array(Baris - 1, TBIDBarang.Value, TBNamaBarang.Value _
             , CBJenisBarang.Value, TBHargaBarang.Value)

Sheet1.Range("A" & Baris).Resize(1, 5).Value = IsiData
MsgBox "Data berhasil diSimpan!", vbInformation, MyApp
Call BersihForm
TBIDBarang.Text = BuatID
End Sub

Private Sub UserForm_Initialize()
CBJenisBarang.RowSource = Sheet1.Range("L2:L4").Address
Call BersihForm
TBIDBarang.Text = BuatID
End Sub

Private Sub BersihForm()
TBIDBarang.Text = vbNullString
TBNamaBarang.Text = vbNullString
CBJenisBarang.Text = vbNullString
TBHargaBarang.Text = vbNullString
End Sub

Private Function BuatID() As String
Dim Baris As Long
Dim IDLama As String
Baris = GetBaris

If Not Baris = 1 Then
    IDLama = Sheet1.Range("B" & Baris)
    Baris = CLng(Right(IDLama, 5)) + 1
End If
BuatID = "ID" & Format(Baris, "00000")
End Function

Private Sub Urut()
Dim i As Long

For i = 2 To GetBaris
    Sheet1.Range("A" & i).Value = i - 1
Next i
End Sub

Kemudian Tambahkan Module dengan cara Insert >>Module, maka akan ada Module1.
Pada pada module1 ketik kode dibawah ini :

Sub Button1_Click()
FormInput.Show
End Sub

Tambahkan 1 Module lagi yaitu Module2, lalu ketik kode lalu ketik kode dibawah ini pada bagian General_Declaration 

Const MyApp As String = "Data Input"
Function GetBaris() As Long
GetBaris = Sheet1.Range("A" & Sheet1.Rows.Count).End(xlUp).Row
End Function
 :

Setelah kode semua diisi sekarang RUN program Anda dengan cara klik arah panah hijau pada ToolBar atau Anda bisa menjalankan lewat Sheet Anda dengan cara klik Button "Form Input"

*Untuk Menghapus data cari terlebih dahulu kodenya dengan mengetik kode dan tekan "Load"


Demikinalah artikel kali ini membahas tentang Cara Membuat Form Input di VBA Excel, semoga bermanfaat buat kita semua. Amin.
Selamat mencoba semoga sukses.

Bila ada sesuatu yang ingin ditanyakan silahkan isi dalam komentar

1 comment: