Menampilkan hasil pencarian di Listbox - Listbox merupakan control berupa kotak (box) yang menampilkan pilihan data secara horizontal dan vertikal yang dapat dipilih oleh pengguna. Data yang akan ditampilkan pada listbox dapat ditulis secara manual atau dapat diambil dari tabel yang ada pada worksheet. Lihat artikel pertama tentang Listbox disini Cara mengisi listbox sesuai dengan data sheet

Setelah sebelumnya saya share Cara menampilkan hasil pencarian dengan List View maka saya akan melengkapi dengan listbox. Menggunakan kontrol listbox untuk menampilkan tabel data lebih sering saya jumpai dari pada menggunakan List View, mungkin alasan utamanya adalah kontrol Listbox lebih gampang pemahamanya dan ini pun dapat dimaklumi, karena pada dasarnya fungsi anatara Listbox dengan List View itu sama, tidaklah dibedakan melainkan hal hal yang kurang diperlukan oleh pengguna awam.

Menampilkan hasil pencarian di Listbox

Ada dua cara Menampilkan hasil pencarian di Listbox, cara pertama dengan Add Item, dan cara kedua dengan Row Source, kekurangan dari cara Add Item hanya satu yaitu proses menampilkan data akan terasa lambat jika tabel data yang akan difilter sudah berjumlah lebih dari 300 baris, dan akan lebih lambat jika barisnya sudah lebih dari 1000 baris. Okelah langsng saja kita lihat dan silahkan anda pilih menggunakan cara yang pertama atau cara yang kedua


Kembali saya akan berasumsi bahwa anda sudah mempunyai tabel data, sebagaimana tabel data yang akan saya gunakan adalah seperti dibawah ini


Pada kolom diatas ada kolom ID, NAMA, ALAMAT, PAKET, dan yang terakhir kolom DISKON, kriteria yang akan menjadi target pencarian adalah kolom NAMA (Kolom B)
Lihat artikel pertama tentang Listbox disini Cara mengisi listbox sesuai dengan data sheet
Buat Design Form sebagaimana gambar dibawah ini


Setelah anda selesai membuat design form, simpan atau save as lembar kerja yang anda buat dengan format Enabled Macro (.Xlsm)

Cara pertama Menampilkan hasil pencarian di Listbox


Cara pertama menggunakan perintah Add Item, kode macro pada event textbox change adalah sebagai berikut

Private Sub TextBox1_Change()
Set i = Sheets("Sheet1")
i.Range("G2").Value = i.Range("b2").Value
i.Range("G3").Value = "*" & TextBox1.Value & "*"'excel pro
i.Range("A2:E1000").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=i.Range("G2:G3")'excel pro
ListBox1.Clear
With ListBox1
.AddItem
.ColumnCount = 5
.List(.ListCount - 1, 0) = "Kode "
.List(.ListCount - 1, 1) = "Nama "
.List(.ListCount - 1, 2) = "Alamat"
.List(.ListCount - 1, 3) = "Paket"
.List(.ListCount - 1, 4) = "Diskon %"
.ColumnWidths = 70 & ";" & 125 & ";" & 120 & ";" & _
70 & ";" & 70'excel pro
End With
Set rgTampil = i.Range("A3:A7").SpecialCells(xlCellTypeVisible)
For Each sTampil In rgTampil
ListBox1.AddItem sTampil.Value
ListBox1.List(ListBox1.ListCount - 1, 0) = sTampil.Value'excel pro
ListBox1.List(ListBox1.ListCount - 1, 1) = sTampil.Offset(0, 1).Value
ListBox1.List(ListBox1.ListCount - 1, 2) = sTampil.Offset(0, 2).Value'excel pro
ListBox1.List(ListBox1.ListCount - 1, 3) = sTampil.Offset(0, 3).Value
ListBox1.List(ListBox1.ListCount - 1, 4) = sTampil.Offset(0, 4).Value
Next
End Sub
i.Range("A2:E1000") Merupakan area tabel data
i.Range("G2").Value = i.Range("b2").Value dan i.Range("G2:G3") Kriteria yang akan dicari
.ColumnCount = 5 jumlah kolom yang akan ditampilkan sebanyak 5 kolom
i.Range("A3:A7") Jumlah baris tabel data, silahkan ganti sesuai dengan jumlah baris yang anda kehendaki

Download - Menampilkan hasil pencarian di Listbox

Cara kedua Menampilkan hasil pencarian di Listbox

Cara pertama menggunakan perintah Row Source, kode macro pada event textbox change adalah sebagai berikut

Private Sub TextBox1_Change()
Set i = Sheets("SheEt1")
c = i.Cells(Rows.Count, 1).End(xlUp).Offset(0, 0).Row
i.Range("AG2").Value = i.Range("G2").Value
i.Range("AG3").Value = "*" & TextBox1.Value & "*"'excel pro
i.Range("A2:E1000").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Sheet1.Range("AG2:AG3")'excel pro
i.Range("A2:E1000").SpecialCells(xlCellTypeVisible).Copy Destination:=i.Range("H2") 'excel pro
ListBox1.ColumnCount = 5
ListBox1.ColumnWidths = 75 & ";" & 120 & ";" & 160 & ";" & 70 & ";" & 70'excel pro
ListBox1.RowSource = "H2:L" & c
ListBox1.ColumnHeads = True
End Sub
Tidak seperti cara pertama, cara kedua ini memakan proses tiga tahapan, tahap pertama adalah mencari data sesuai dengan kriteria tertentu, tahap kedua mengcopy dan meletakan hasil pencarian kesel lain, dan proses ketiga adalah menampilkan data hasil pencarian. Meskipun mempunyai proses yang lebih panjang dari cara pertama namun soal kecepatan proses kedua ini merupakan jawaranya

Download - Menampilkan hasil pencarian di Listbox

Agar tidak terjadi debug, silahkan tambahkan On Error Resume Next pada awal kode. Serta tambahkan kode macro dibawah ini agar data ang difilter kembali tampil semua, tambahkan diakhir kode pencarian
If i.FilterMode Then
i.ShowAllData
End If
Demikianlah cara Menampilkan hasil pencarian di Listbox, dihari yang panas ini, dihari libur ini, dihari yang berbahagia ini semoga kita semua tetap dalam lindungan-NYA, Aamiin
3 comments
This comment has been removed by the author.
Biru Donker

password dong gan birudonker1990@gmail.com

Reply