
Ambil contoh seperti berikut, seorang pengunjung toko handphone ingin mengetahui harga sebuah produk, sebut saja VIVO versi V5 yang dibuat atau direlease di tahun 2015, serta ingin mengetahui juga ketersediaan barangnya. Dan jika dari kumpulan data-data yang tersimpan didalam komputer tersebut memiliki informasi berupa merk VIVO dengan versi V5-nya serta buatan tahun 2015, maka komputer atau aplikasi akan menampilkan informasi harga serta stok barang sesuai dengan kriteria yang dimasukkan oleh pengunjung toko tersebut.
Nah dari gambaran diatas, variabel seperti VIVO, V5 dan tahun 2015 adalah sebuah kondisi yang harus dipenuhi untuk menampilkan hasil berupa Informasi Harga Produk dan Stok Barang.
Jika contoh diatas diterjemahkan dalam sekumpulan data Microsoft Excel, maka tampilannya kurang lebih seperti berikut :
Ok, sekarang kita akan mencoba melakukan pencarian data seperti yang dilakukan oleh pengunjung toko handphone menggunakan data-data yang tersimpan dalam Microsoft Excel.
Saya berasumsi data-data yang tersimpan di komputer memiliki susunan yang kurang lebih seperti apa yang saya sajikan diatas. Dan selanjutnya kita akan mencari nilai dari sekumpulan data-data yang sudah ada ini untuk menampilkan informasi berdasarkan 3 (tiga) buah kriteria seperti yang sudah saya gambarkan sebelumnya.
Dan sesuai dengan judul tutorial ini, maka syarat yang tidak kalah penting yang harus dilakukan terlebih dahulu adalah menonaktifkan keamanaan Macro Microsoft Excel anda, agar nantinya kode-kode yang ditulis bisa dijalankan secara maksimal.
Jika persiapan sudah oke, silahkan ikuti langkah demi langkah yang saya sajikan berikut ini :
- Aktifkan terlebih dahulu jendela Microsoft Visual Basic Editor jika belum, yakni dengan menekan tombol pintas
ALT +F11 - Buat sebuah module baru melalui menubar Insert, kemudian pilih Module
- Tulis atau tempelkan sederetan baris Macro VBA berikut ini di dalam module yang sudah dibuat dilangkah sebelumnya
Sub TigaKriteria() On Error Resume Next Dim a, b As Variant Dim c As Double Dim psn As Boolean Dim isi psn = False isi = Cells(Rows.Count, 1).End(xlUp).Row a = Application.InputBox("Nama item atau produk") b = Application.InputBox("Jenis versi produk") c = Application.InputBox("Tahun dibuat") For i = 2 To isi If InStr(UCase(Cells(i, 2)), UCase(a)) And _ InStr(UCase(Cells(i, 3)), UCase(b)) And _ Cells(i, 4) = c Then If psn = False Then MsgBox "Hasil pencarian untuk item : " & _ Cells(i, 2) & " " & Cells(i, 3) & " " & Cells(i, 4) & vbCr & _ "Price : " & Format(Cells(i, 5), "#,##0") & vbCr & _ "Stok : " & Cells(i, 6) & " bh" psn = True End If End If Next End Sub
Penjelasan ringkas kode di atas Untuk lebih memahami kode-kode yang sudah saya tuliskan ini dan tidak asal copy-paste, berikut keterangan secara singkat baris-baris penting yang terdapat dalam serangkaian kode Macro VBA diatas
On error resume next
adalah sebuah statement yang akan mengabaikan semua perintah jika terjadi sebuah kesalahanDim a, b As Variant
saya mendeklarasikan variabel a dan variabel b sebagai variant, karena nantinya nilai-nilai yang terdapat dalam variabel ini berisi sebuah teks (nama item dan versi handphone)Dim c As Double / Long
sesuai dengan cerita contoh diatas bahwa terdapat sebuah variabel yang menunjukkan tahun dikeluarkannya sebuah produk Handphone, maka variabel c saya deklarasikan sebagai Double atau anda juga bisa mendeklarasikan sebagai Long agar dapat menyimpan nilai sebagai angka (numeric)Dim psn As Boolean
Untuk variabel psn, saya fungsikan ia sebagai sebuah Boolean agar ia bisa menyimpan nilai TRUE atau FALSE. Variabel nilai psn sendiri saya gunakan agar nantinya kotak pesan (MsgBox) tidak muncul secara berulang-ulangpsn = False
melanjutkan dari penjelasan sebelumnya, variabel psn yang sudah saya deklarasikan sebagai Boolean saya beri dia nilai awal dengan nilai FALSE.
Variabel dan nilai dari psn ini bersifat pilihan, artinya jika anda ingin menampilkan hasil pencarian langsung ke dalam lembar kerja maka anda tidak perlu menempatkan baris perintah iniisi = Cells....
Baris kode ini memuat sebuah nilai yang dapat digunakan untuk mencari informasi baris terakhir yang berisi data berdasarkan kolom A atau indeks kolom ke-1, sehingga ia akan mencari jumlah atau banyaknya data secara otomatisa = ... nama item
Nilai ini dideklarasikan sebagai sebuah Variant yang digunakan sebagai kriteria pertama, dan untuk contoh ini kriteria yang dimaksud adalah Nama Item yang dapat dimasukkan melalui jendela InputBoxb = ... versi produk
sama seperti nilai a, hanya saja ia di dijadikan sebagai kriteria kedua yakni akan membaca versi sebuah produkc = ...tahun
Berbeda dengan nilai a dan nilai b, nilai ini menyimpan informasi sebagai angka dan dijadikan sebagai kriteria ketiga.For i = 2 to Isi
Baris ini merupakan perintah awal untuk pengulangan (loop), yang mana pengulangan akan dibaca mulai dari baris ke-2 sampai dengan baris sebanyak yang diketahui oleh nilai yang didapatkan oleh variabel isiIf InStr.......
Kata kunci dari bahasa logika yang cukup panjang ini terdapat dalam baris perintahInStr.... , saya gunakan untuk 'mengunci' dan mencari kesamaan nilai antara nilai yang dimasukkan di setiap variabel dengan kolom indeks yang sesuai dengan kriteria yang dimasukkan, seperti :
- variabel a memiliki nilai sama dengan nilai yang ada di kolom indeks ke-2, dan
- variabel b memiliki nilai sama dengan nilai yang ada di kolom indeks ke-3, dan
- variabel c memiliki nilai sama dengan nilai yang ada di kolom indeks ke-4
InStr... , Maka Macro VBA akan 'memaksa' untuk menyamakan penulisan karakter huruf besar atau huruf kecil agar tidak bersifat case-sensitive.
Masih dalam logika IF yang pertama, dimana jika semua kondisi-kondisi ini terpenuhi maka baris perintah yang akan dieksekusi adalah :If Psn = False
Ok, logika If ini kita sebut saja sebagai logika IF yang kedua dimana ia terdapat didalam logika IF yang pertama yang mana fungsi utama dari logika IF kedua ini adalah jika variabel nilai psn adalah False (lihat penjelasanpsn = False ), maka sebuah kotak pesan dengan berbagai informasi pencarian akan ditampilkan.
Dan setelah logika IF yang kedua ini dieksekusi, maka variabel psn saya rubah nilainya menjadi TRUE agar nantinya hasil pencarian TIDAK ditampilkan secara berulang-ulangEnd IF
Adalah sebuah parameter yang wajib dituliskan untuk menutup Logika IF. Karena dalam tutorial ini saya menggunakan 2 logika IF maka parameter End IF berjumlah 2Next
Baris perintah terakhir dari serangkaian kode Macro VBA ini adalah parameter Next, sebagai penutup dari parameterFor i.....
Barangkali serangkaian baris kode Macro VBA yang kita tuliskan jika dibahasakan dalam bahasa sehari-hari kurang lebih seperti setiap poin yang saya jelaskan diatas. Dan mudah-mudahan penjelasannya bisa dimengerti.
Namun jika anda menemui kendala, silahkan anda tuliskan beberapa hal yang masih belum dipahami dari tutorial ini dalam kolom komentar dibawah.
Sebagai penutup, berikut saya tampilkan hasil akhir dari tutorial ini. Dan jika anda mengikuti langkah demi langkah yang saya berikan dalam tutorial ini, maka andapun akan mendapatkan hasil akhir seperti yang tampak dalam tampilan berikut

Selamat... anda sudah berhasil mengetahui bagaimana caranya menampilkan informasi berdasarkan 3 (tiga) buah kriteria yang diinput atau dimasukkan melalui jendela InputBox. Mudah-mudahan tutorial kali ada guna dan manfaatnya, dan membantu anda menyelesaikan permasalah excel yang saat ini anda hadapi.
Silahkan bookmark website ini jika anda suka dengan tutorial-tutorial yang telah kami sajikan, dan jangan lupa kunjungi kami lain waktu untuk mengetahui kehebatan Microsoft Excel lainnya bersama excelive.com.
Incoming Search Terms
Menampilkan data dari 3 (tiga) kriteria Mengambil data dengan multi kriteria
Kode VBA mencari data dari banyak kriteria
Rumus alternatif untuk mencari data dari banyak kriteria
Menyaring data berdasarkan banyak kriteria
Gabungan kode Macro VBA untuk menampilkan data tertentu
Terimakasih sudah membaca
Tutorial: Kode Macro VBA untuk menampilkan Informasi Data Dari 3 Kriteria
Label: Loop - Author: excelive
Tutorial: Kode Macro VBA untuk menampilkan Informasi Data Dari 3 Kriteria
Label: Loop - Author: excelive
Masih mau belajar lagi !
Yuk, klik tautan berikut ini :