Membuat input di worksheet melalui VBA bukan hanya mempercepat proses kerja, tetapi juga membantu mengurangi kesalahan yang terjadi ketika data diinput secara manual.
Langkah-langkah ini sangat bermanfaat bagi pemula yang ingin memahami dasar-dasar VBA dan cara menggunakannya untuk mempermudah pengelolaan data di Excel.
Mari kita mulai dengan beberapa langkah sederhana untuk membuat input menggunakan VBA di worksheet!
Pada tahap pertama dimulai dengan proses pembuatan Template untuk membuat sebuah form input sederhana langsung di cells.
Contoh tempat input, bisa dilihat pada gambar dibawah ini:
Proses pembuatan script dimulai dari pembuatan property untuk Input Cells, pembuatan propertis ini untuk memudahkan proses pembuatan script.
Simpan script dibawah ini didalam Module.
Public Property Get InputCell() As Range Set InputCell = Sheet1.Range("C3,C5,C7,C9,C11,F3,F5,F7,F9,F11") End Property
Selanjutnya untuk tombol reset, bisa menggunakan script berikut ini
Sub ResetForm() Dim Sel As Range For Each Sel In InputCell Sel.ClearContents Next Sheet1.Range("D3").ClearContents End Sub
Script untuk menyimpan data dari cell input.
Sub TambahData() Dim DBPenduduk As Range Set DBPenduduk = Sheet1.Range("A" & Sheet1.Rows.Count).End(xlUp).Offset(1) 'Untuk Cek Kosong For Each sel In InputCell If sel.Value = "" Then Msgbox "Data tidak boleh kosong!", vbInformation, "Data Penduduk" Exit Sub End If Next 'Simpan Data DBPenduduk.Value = "=ROW()-16" For i = 1 To InputCell.Count DBPenduduk.Offset(0, i).Value = InputCell.Areas.Item(i) Next Call ResetForm Msgbox "Data berhasil disimpan!", vbInformation, "Data Penduduk" End Sub
Sebelum membuat sript untuk Edit data, tambahkan script di Worksheet Module, pada Event Selection change, untuk memindahkan data dari table ke Cell Input.
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Not Intersect(Range("A17:A" & Rows.count), Target) Is Nothing Then For i = 1 To InputCell.Count InputCell.Areas.Item(i) = Target.Offset(0, i).Value Next Range("D3").Value = Target.Value End If End Sub
Setelah itu tambahkan script berikut ini pada tombol Edit Data
Sub EditData() Dim DBPenduduk as Range Set DBPenduduk = Sheet1.Cells(Sheet1.Range("D3").Value + 16, "A") 'Simpan Data DBPenduduk.Value = "=ROW()-16" For i = 1 To InputCell.Count DBPenduduk.Offset(0, i).Value = InputCell.Areas.Item(i) Next Call ResetForm Msgbox "Data berhasil diubah!", vbInformation, "Data Penduduk" End Sub
Sub HapusData() Dim Pesan As VbMsgBoxResult Pesan = MsgBox("Apakah Yakin Data ini akan dihapus", vbYesNo + vbQuestion, "Data Penduduk") If Pesan = vbNo Then Exit Sub Set DBPenduduk = Sheet1.Cells(Sheet1.Range("D3").Value + 16, "A") DBPenduduk.EntireRow.Delete Call ResetForm End Sub
Untuk tutorial lengkap bisa dilihat disini:
Mantap kali abang, Terima kasih