BIKIN USERFORM PENCARIAN DATA DENGAN ADVANCED FILTER VBA EXCEL – Belajar Microsoft Excel : Tips, Tricks & Tutorial

BIKIN USERFORM PENCARIAN DATA DENGAN ADVANCED FILTER VBA EXCEL

Assalamualaikum Warohmatullahi Wabarokatuh

Sodara2 sekaliYan para pembatja jang boediman … beberapa artikel telah terbit diblog ini dengan topik cara cari mencari data pada sebuah tabel Excel  … ada yang pakE formula … ada yang pakE Advanced Filter … ada jugaK yang pakE VBA … artikel2 tersebut bisa sOdara cari dengan keyword “Search Engine” (klik disini) atau “Advanced Filter” (klik disini)

dalam artikel2 tesebut hasil pencarian ditampilkan dalam sebuah Range pada Worksheet Excel … naagh Problema de Excellente dalam artikel kali ini adalah bagaimana cara agar hasil pencarian data pada suatu tabel Microsoft Excel bisa ditampilkan pada UserForm

langkah2 untuk menyelesaikan Problema de Excellente diatas sebenarnya cukup mudah dan sederhana … sOdara bisa lihat penampakan berikut yang menggambarkan proses yang berjalan dari penentuan tabel sumber yang akan difilter datanya sampai data hasil pencarian yang tjotjok dengan kriteria ditampilkan pada kontrol ListBox

➡ yang pertama

sOdara tentukan dulu Tabel Sumber yang akan dicari datanya … untuk contoh saya pakai tabel berikut ini yang dulu pernah saya pakai jugaK pada artikel tentang pencarian data menggunakan formula / rumus excel … yang selengkapnya bisa sOdara baca dengan klik disini

tabelnya terdiri atas 4 kolom yaitu : Nomor Urut, Judul Lagu, Nama Penyanyi dan TahunPERHATIAN : data2 yang saya tampilkan dalam tabel ini boleh jadi amat sangat tidak akurat 🙂 jadi jangan dijadikan bahan referensi … apalagi kalO sOdaa pengEn download file mp3 nya dimarih saya jamin ndak bakan ketemu 😉

  • Nomor Urut, berisi data-data numerik (angka)
  • Judul Lagu, berisi data-data Teks/String
  • Nama Penyanyi, berisi data-data Teks/String
  • Tahun, berisi data-data numerik (angka)

Tabel Sumber berada pada sheet “Tabel”dan dimulai dari Cell A1Tabel Sumber ini nantinya akan ditampung dalam variabel RangeTabel pada kode macro VBA untuk filtering datanya … karena ukuran tabel ini dinamis … bisa kita tambah data baru atau kita hapus data nantinya … maka untuk menentukan nilai variabel RangeTabel bisa menggunakan metode Range.CurrentRegion … sOdara bisa baca artikelnya dengan klik disini …  berikut adalah kodenya yang bisa sOdara temukan pada prosedur UserForm_Activate untuk menentukan Range Tabel dari data sumbernya

Set RangeTabel = ThisWorkbook.Sheets("Tabel").[A1].CurrentRegion

➡ yang kedua

selanjutnya melakukan filter data sesuai kriteria yang kita inginkan …  silahkan sOdara baca artikel untuk melakukan filter data dengan metode Advanced Filter dengan klik disini …. tabel terdiri atas kolom-kolom Nomor Urut, Judul Lagu, Nama Penyanyi dan Tahun … sOdara bisa memilih pada kolom mana saja yanga akan dilakukan pencarian datanya … boleh satu kolom , dua kolom , tiga kolom ataupun semuanya … dalam contoh file pencarian keyword akan dilakukan pada semua kolom

sebelOm memulai bikin kode macro VBA Excel Advanced Filter … harus ditentukan dulu Range yang berisi kriteria (variabel RangeKriteria) dan Range yang nantinya akan digunakan untuk menampung tabel hasil filter (variabel RangeCopyTo) …. Range2 tersebut sebenarnya bisa ditaruh di sheet “Tabel” namun saya lebih memilih untuk menempatkannya pada sheet yang berbeda … saya bikinkan sheet baru dengan nama “Dummy” kalO sodara ndak suka namanya … diperkenankan kok sebut saja namanya Bunga atau Mawar atau Melati 🙂 🙂 🙂 … sheet ini jugaK boleh disembunyikan kalO sOdara pengen … kodenya bisa sOdara temukan pada prosedur UserForm_Activate

Set RangeCopyTo = ThisWorkbook.Sheets("Dummy").[G1]

Set RangeKriteria = ThisWorkbook.Sheets("Dummy").[A1:D5]

RangeKriteria sudah didepinisikan sekarang bikin kriterianya … misal keyword yang akan dicari adalah “cinta” dan cari di semua kolom (Nomor Urut, Judul Lagu, Nama Penyanyi dan Tahun) maka kriterianya yang harus dibikin adalah seperti gambar berikut

  • baris pertama A1:D1 diisi judul kolom persis dengan Tabel Sumber
  • baris kedua hanya diisi pada kolom A , Cell A2 “=cinta”
  • baris ktiga hanya diisi pada kolom B , Cell B3 “*cinta”
  • baris keempat hanya diisi pada kolom C , Cell C4 “*cinta”
  • baris kelima hanya diisi pada kolom D , Cell D5 “=cinta”

kalO sOdara cari kodenya dalam contoh file penampakannya akan seperti ini

coba sOdara perhatikan kenapa ada yang pakE “*cinta” dan ada yang pakE “=cinta” … ini berhubungan dengan jenis data yang ada pada kolom tersebut … jika datanya berupa angka gunakan awalan “=cinta” dan kalau teks gunakan “*cinta”

kriteria seperti diatas akan melakukan filter dengan syarat :

  • kolom  No sama dengan “cinta” , atau
  • kolom  Judul Lagu mengandung kata “cinta”, atau
  • kolom  Penyani mengandung kata “cinta”, atau
  • kolom  Tahun sama dengan “cinta”

kalO sOdara bikin kriterianya kayak gambar berikOt ini

maka syarat filternya pun berubah dari yang sebelumnya atau menjadi dan

  • kolom  No sama dengan “cinta” , dan
  • kolom  Judul Lagu mengandung kata “cinta”, dan
  • kolom  Penyani mengandung kata “cinta”, dan
  • kolom  Tahun sama dengan “cinta”

variabel2 yang diperlukan sudah didepinisikan … berikutnya bikin kode macro VBA Excel untuk Advanced Filter … kayak penampakan berikut

yang ketiga

setelah proses filter kita bisa lihat hasilnya pada area yang telah kita tentukan pada saat mendepinisikan variabel RangeCopyTo yaitu Dummy!G1 …. hasil filter kayak penampakan gambar berikut ini

➡ yang keempat

Tabel hasil filter telah kita kantongin … sekarang tinggal menampilkannya pada UserForm … kontrol yang perlu ditambahkan cukup 2 aja kayak program KB (kontrol Label abaikan saja) yaitu :

  • TextBox TBKEYWORD sebagai sarana entri keyword yang akan digunakan dalam filter
  • ListBox LBRESULT untuk menampilkan tabel hasil filter

nih penampakannya

untuk menampilkan isi tabel ke kontrol ListBox bisa menggunakan metode AddItem atau memanpaatkan properties RowSource … dalam contoh file saya pilih metode AddItem … dengan pengulangan prosedur For … Next … berikut penampakan kodenya

dan saat kode tersebut di eksekusi penampakan form akan seperti gambar berikut

UserForm pencarian tersebut masih sangat sederhana … cuman ada 3 prosedur yakni :

  • TBKEYWORD_Change , prosedur yang dijalankan saat TextBox TBKEYWORD berubah … TBKEYWORD berisi keyword yang akan digunakan sebagai kriteria filter datanya
  • UserForm_Activate , prosedur yang dijalankan saat UserForm diaktifkan
  • Filtering , prosedur tambahan  , prosedur ini berisi langkah2 untuk melakukan filter data dan menampilkannya di ListBox … sebenarnya prosedur ini bisa dituliskan langsung pada prosedur TBKEYWORD_Change … silahkan coba sOdara cut-paste prosedur yang ada disini ke prosedur TBKEYWORD_Change … dan hapus perintah Call Filtering pada prosedur TBKEYWORD_Change … insyaAllah hasilnya akan sama

jadi saat UserForm diaktifkan akan menjalankan prosedur UserForm_Activate, setelah UserForm Ready kita bisa mengetikkan Keyword  pada TBKEYWORD sehingga isinya berubah dan memicu event TBKEYWORD_Change … event TBKEYWORD_Change akan memanggil prosedur Filtering sehingga hasil filter pencarian akan tampil di kontrol ListBox

demikiYanlah artikel tentang cara memfilter tabel excel dengan macro VBA dan menampilkannya pada UserForm … silahkan download contoh file FormSearch.xlsm dari folder 2017 >> 09_SEP … kodenya sudah saya kasih terjemahan singkat untuk membantu sOdara2 sekaliYan memahaminya … Form pencarian data diatas masih sangat sederhana agar mudah dipelajari tetapi jika sOdara pengEn saya jugaK ada Form yang lumayan Tjakep kayak penampakan pidio berikut ini … kalau sOdara minat silahkan request via komen untuk dibikinin artikelnya

;

bingung cara downloadnya ??

Baca aja halaman download dengan klik icon di samping

feed , email and my social media

One Comment

Jika sOdara menemukan sesuatu yang bermanpaat di marih .... silahkan kasih komennya