Membuat Fitur Pencarian Data pada UserForm VBA Excel

Dalam sebuah aplikasi pengelolaan data, kemampuan mencari informasi dengan cepat merupakan salah satu fitur yang sangat penting. Ketika jumlah data masih sedikit, pengguna mungkin masih dapat melakukan pencarian langsung melalui worksheet. Namun, ketika data sudah mencapai ratusan bahkan ribuan baris, cara tersebut menjadi kurang efektif dan membutuhkan waktu lebih lama.

Untuk mengatasi masalah tersebut, VBA Excel menyediakan kemampuan untuk membangun fitur pencarian data melalui UserForm. Dengan fitur ini, pengguna dapat menemukan data tertentu hanya dengan memasukkan kata kunci, kemudian sistem akan menampilkan informasi yang sesuai secara otomatis.

Fitur pencarian seperti ini sering digunakan dalam berbagai aplikasi berbasis Excel, seperti:

  • sistem data karyawan,

  • aplikasi inventaris barang,

  • database pelanggan,

  • sistem absensi,

  • pencatatan transaksi.

Dengan kombinasi UserForm, TextBox pencarian, ListBox, perulangan, dan fungsi pencarian VBA, Excel dapat dikembangkan menjadi aplikasi pengelolaan data yang lebih cepat dan nyaman digunakan.


Konsep Dasar Sistem Pencarian UserForm

Sebelum membuat kode, penting memahami bagaimana alur pencarian bekerja.

Secara umum:

Pengguna Memasukkan Kata Kunci
              ↓
VBA Membaca Database
              ↓
Mencocokkan Data
              ↓
Menampilkan Hasil Pencarian

Sebagai contoh:

Database:

IDNamaJabatan
1 Andi Admin
2 Budi Marketing
3 Citra Finance

Pengguna mengetik:

Budi

Maka sistem hanya menampilkan data yang sesuai.


Menyiapkan Database pada Worksheet

Langkah pertama adalah menyiapkan tabel sebagai sumber data.

Buat worksheet dengan nama:

DataKaryawan

Contoh struktur:

ABCD
ID Nama Jabatan Status
1 Andi Admin Aktif
2 Budi Marketing Aktif
3 Citra Finance Nonaktif

Data tersebut nantinya akan dibaca oleh VBA ketika proses pencarian berlangsung.


Membuat Komponen UserForm

Buat sebuah UserForm dengan beberapa kontrol berikut:

KontrolNamaFungsi
TextBox txtCari Input kata kunci
ListBox lstData Menampilkan hasil
CommandButton btnCari Menjalankan pencarian
CommandButton btnReset Menghapus pencarian

Desain form sebaiknya dibuat sederhana agar pengguna dapat langsung memahami cara penggunaannya.


Membuat Proses Pencarian Sederhana

Untuk melakukan pencarian, VBA dapat menggunakan perulangan For untuk membaca setiap baris data.

Contoh:

Private Sub btnCari_Click()

    Dim ws As Worksheet
    Dim Baris As Long


    Set ws = Sheets("DataKaryawan")


    lstData.Clear


    For Baris = 2 To ws.Cells(Rows.Count, "A").End(xlUp).Row


        If ws.Cells(Baris, 2).Value = txtCari.Value Then

            lstData.AddItem ws.Cells(Baris, 2).Value

        End If


    Next Baris


End Sub

Kode tersebut akan:

  1. membaca seluruh data,

  2. membandingkan nama dengan kata kunci,

  3. menampilkan data yang cocok.


Membuat Pencarian yang Lebih Fleksibel dengan InStr

Pencarian menggunakan tanda sama dengan (=) hanya menemukan data yang sama persis.

Contoh:

If Nama = "Andi" Then

Jika pengguna mengetik:

And

maka data tidak ditemukan.

Agar pencarian lebih fleksibel, gunakan fungsi InStr.

Contoh:

If InStr(1, ws.Cells(Baris, 2).Value, txtCari.Value) > 0 Then

    lstData.AddItem ws.Cells(Baris, 2).Value

End If

Dengan metode ini:

Pencarian:

And

akan menemukan:

Andi

Teknik ini lebih sesuai untuk aplikasi database.


Membuat Pencarian MultiKolom

Dalam aplikasi nyata, pengguna sering ingin mencari berdasarkan beberapa informasi.

Misalnya:

  • nama,

  • jabatan,

  • status.

Kode:

If InStr(1, ws.Cells(Baris,1).Value, txtCari.Value) > 0 _
Or InStr(1, ws.Cells(Baris,2).Value, txtCari.Value) > 0 _
Or InStr(1, ws.Cells(Baris,3).Value, txtCari.Value) > 0 Then


    lstData.AddItem ws.Cells(Baris,2).Value


End If

Dengan cara ini, satu kotak pencarian dapat digunakan untuk mencari berbagai informasi.


Menampilkan Data Lengkap ke ListBox

Agar hasil pencarian lebih informatif, ListBox dapat menampilkan beberapa kolom.

Aktifkan:

lstData.ColumnCount = 4

Kemudian masukkan data:

With lstData

    .AddItem ws.Cells(Baris,1).Value

    .List(.ListCount-1,1)=ws.Cells(Baris,2).Value

    .List(.ListCount-1,2)=ws.Cells(Baris,3).Value

    .List(.ListCount-1,3)=ws.Cells(Baris,4).Value

End With

Hasil:

IDNamaJabatanStatus
1 Andi Admin Aktif

Membuat Pencarian Otomatis Saat Mengetik

Aplikasi modern biasanya tidak membutuhkan tombol pencarian. Hasil langsung berubah ketika pengguna mengetik.

Gunakan event:

Private Sub txtCari_Change()

    Call CariData

End Sub

Kemudian buat prosedur pencarian:

Sub CariData()

    'Kode pencarian

End Sub

Keuntungan:

  • lebih cepat,

  • lebih nyaman,

  • terlihat seperti aplikasi modern.


Menambahkan Tombol Reset Pencarian

Agar pengguna dapat kembali melihat semua data:

Private Sub btnReset_Click()

    txtCari.Value = ""

    lstData.Clear

End Sub

Fitur sederhana ini meningkatkan pengalaman pengguna.


Menghubungkan Hasil Pencarian dengan Form Edit

Dalam sistem CRUD, hasil pencarian biasanya digunakan untuk proses berikutnya.

Misalnya:

  1. pengguna mencari data,

  2. memilih hasil,

  3. data muncul pada TextBox,

  4. pengguna melakukan perubahan.

Contoh:

Private Sub lstData_Click()

    txtNama.Value = lstData.List(lstData.ListIndex,1)

End Sub

Dengan metode ini, fitur pencarian dapat menjadi bagian dari sistem edit dan hapus data.


Meningkatkan Performa Pencarian Data Besar

Jika jumlah data sangat banyak, pencarian menggunakan perulangan biasa dapat menjadi lebih lambat.

Beberapa solusi:

Gunakan Array

Membaca data ke memori sebelum melakukan pencarian.

Gunakan Range Terbatas

Jangan membaca seluruh worksheet jika data hanya berada pada area tertentu.

Gunakan Filter

Untuk data besar, fitur AutoFilter dapat menjadi alternatif yang lebih cepat.


Kesalahan yang Sering Terjadi

Tidak Membersihkan Hasil Sebelumnya

Jika ListBox tidak dikosongkan:

lstData.Clear

hasil pencarian lama dapat tetap muncul.


Pencarian Terlalu Sensitif terhadap Huruf

Gunakan:

LCase()

agar pencarian tidak membedakan huruf besar dan kecil.

Contoh:

LCase(Nama)=LCase(txtCari.Value)

Tidak Memberikan Pesan Jika Data Tidak Ditemukan

Tambahkan pengecekan:

If lstData.ListCount = 0 Then

    MsgBox "Data tidak ditemukan."

End If

Tips Membuat Fitur Pencarian Profesional

Agar sistem terlihat seperti aplikasi sebenarnya:

  • gunakan pencarian otomatis saat mengetik,

  • tampilkan beberapa kolom informasi,

  • gunakan pencarian sebagian dengan InStr,

  • tambahkan tombol reset,

  • hubungkan dengan fitur edit dan hapus,

  • gunakan validasi kata kunci.

Dengan desain yang tepat, UserForm dapat menjadi pusat pencarian data yang cepat dan mudah digunakan.


Kesimpulan

Membuat fitur pencarian data pada UserForm VBA Excel merupakan langkah penting dalam membangun aplikasi pengelolaan data yang lebih profesional.

Dengan memanfaatkan TextBox sebagai input pencarian, ListBox sebagai tampilan hasil, serta fungsi seperti InStr, perulangan, dan event UserForm, pengguna dapat menemukan informasi dengan lebih cepat tanpa harus membuka dan mencari secara manual di worksheet.

Fitur pencarian menjadi bagian penting dalam pengembangan sistem CRUD karena menjadi penghubung antara proses membaca data, melakukan perubahan, hingga penghapusan informasi.

Setelah memahami konsep pencarian data, tahap berikutnya dapat dikembangkan menjadi sistem yang lebih lengkap dengan fitur filter, sorting, edit, dan laporan otomatis.

Hubungi Kami

Kantor Berkreasi
Alamat :
Pens Sky Venture - Sukolilo Surabaya
Karangrejo Tmur 17 Surabaya

Email : kantor.berkreasi@gmail.com
WA : wa.me/6287761589881  
(Support  Mbak Ana)

Tim Pengembang

Dr. Rojabi Azharghany, M.Si, S.Sos
Dr. H. Agus Sulthoni Imami, S.Psi. M.Pd.I.
Ali Ishaq, M.Pd.
Didik Rahwiniyanto, S.Si., M.Pd.
Mujiburrohman, M.Pd.
Mohammad Zikky, S.ST, M.T
Amien sawedi, S.Pd.
Didik P Wicaksono, M.Pd.