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