Kode Macro VBA untuk menampilkan Informasi Data Dari 3 Kriteria

kriteria macro vba

Banyak cara yang digunakan dalam menentukan ukuran yang menjadi dasar untuk menampikan atau menyembunyikan suatu data, atau lebih mudahnya disebut sebagai kriteria. Ya, suatu kriteria dapat digunakan sebagai patokan kapan atau bagaimana data-data tersebut ingin ditampilkan, atau diambil untuk kemudian diolah lagi dengan data lainnya.

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 :
Data toko handphone

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 :

  1. Aktifkan terlebih dahulu jendela Microsoft Visual Basic Editor jika belum, yakni dengan menekan tombol pintas ALT+F11
  2. Buat sebuah module baru melalui menubar Insert, kemudian pilih Module
  3. 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

    Untuk lebih memahami kode-kode yang sudah saya tuliskan ini dan tidak asal copy-paste, berikut akan saya jelaskan 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 kesalahan
    • Dim 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-ulang
    • psn = 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 ini
    • isi = 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 otomatis
    • a = ... 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 InputBox
    • b = ... versi produk
      sama seperti nilai a, hanya saja ia di dijadikan sebagai kriteria kedua yakni akan membaca versi sebuah produk
    • c = ...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 isi
    • If InStr.......
      Kata kunci dari bahasa logika yang cukup panjang ini terdapat dalam baris perintah InStr...., 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
      dengan menggunakan parameter 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 penjelasan psn = 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-ulang
      • End 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 2
    • Next
      Baris perintah terakhir dari serangkaian kode Macro VBA ini adalah parameter Next, sebagai penutup dari parameter For 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
Kode Macro VBA 3 Kriteria

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. Despedida.

Tidak ada komentar:
Write komentar

Our Services


design

all the design of each tutorial has passed the test for excel 2007 up

installation

every each codes on this site are provided "as is" and are easy to install

youtube

in order to facilitate you in learning excel, you can visit our channel here

download

to complete all excel lessons, we have provided a download link for you

Interested for our works and services?
Get more of our update !