Tampilkan postingan dengan label Macro VBA. Tampilkan semua postingan
Tampilkan postingan dengan label Macro VBA. Tampilkan semua postingan

Menggunakan Parameter Intersect Dalam Macro VBA Excel

Belajar Intersect Excel

Dalam bahasa indonesia, kata intersect dapat diartikan sebagai titik temu yang mana ia dapat diartikan sebagai pertemuan antara dua buah range dan mengambil sel-sel atau range yang menjadi pertemuan antara keduanya.
Pemahaman Intersect dapat di ilustrasikan dalam gambar berikut :
mengenal parameter intersect excel
Gambar di atas dapat dijelaskan bahwa pertemuan antara Range B2:D5 dan range C5:E7 adalah range C5:D5, inilah yang dinamakan dengan intersect.

Untuk menerjemahkan gambar di atas ke dalam bahasa Macro VBA excel, cara sederhananya adalah dengan menuliskan kode berikut ke dalam sebuah Module kemudian jalankan, maka hasilnya ia akan menampilkan alamat dari pertemuan antara sel-sel atau range tersebut
Sub Test1()
	MsgBox Intersect(Range("B2:D5"), Range("C5:E7")).Address
End Sub
Macro VBA intersect

Sekarang, mari coba kita rubah salah satu parameter yang digunakan dalam penulisan range diatas menjadi seperti berikut:
Sub Test2()
	MsgBox Intersect(ActiveCell, Range("C5:E7")).Address
End Sub
Jika anda menjalankan baris kode di atas dan jika alamat sel yang anda pilih saat ini tidak berada dalam lingkup Range C5:E7, maka pasti anda akan dihadapkan dengan pesan Run Time Error, hal ini terjadi karena parameter ini tidak mampu untuk membaca dan menemukan hasil pertemuan atau perpotongan sel. sebaliknya, jika sel yang saat ini aktif terpilih ada dalam rentang range tersebut, maka pesan yang berisi alamat sel akan ditampilkan.
intersect excel vba

Perbedaan mendasar antara module Test1 dan Test2 di atas terletak pada pemilihan alamat sel atau range yang dijadikan sebagai acuan untuk melihat perpotongan atau pertemuan sel. Anda tidak akan menemukan pesan error pada kode yang dituliskan pada module Test1, karena setiap alamat sel yang dituliskan memiliki perpotongan.
Sementara untuk module Test2, karena salah satu sel berisi parameter ActiveCell yang meminta pengguna untuk menentukan sendiri sel yang jadi perpotongan dengan acuan range C5:E7, maka akan sangat mungkin muncul pesan error jika alamat sel yang aktif terpilih berada diluar range tersebut.

Ok, untuk mencegah pesan error pada module Test2, bisa anda gunakan fungsi logika sederhana dengan menggunakan kata kunci (keyword) NOTHING. Kata kunci ini bertugas untuk menjelaskan kepada Excel bahwa tidak ada sel aktif yang sesuai dengan apa yang seharusnya dipilih.

Sekarang coba perhatikan penyempurnaan dari module Test2 berikut ini :
Sub Test2Lagi()
If Intersect(ActiveCell, Range("C5:E7")) Is Nothing Then
    MsgBox "Coba pilih alamat sel dalam rentang C5:E7"
    Else
    MsgBox Intersect(ActiveCell, Range("C5:E7")).Address
End If
End Sub
Penggunaan logika IF dengan disertai kata kunci Nothing seperti dalam kode di atas, mengganti pesan Run Time Error dengan kotak pesan (MsgBox) yang bisa kita isi sendiri.
intersect dan keyword nothing

Penggunaan yang paling umum dari metode Intersect ini biasanya digunakan dalam sebuah even ketika sebuah sel berubah, dalam bahasa Macro VBA even ini dikenal dengan even Worksheet_Change.
Penjelasan mengenai cara menggunakan Intersect dalam even ini akan diulas dalam tutorial berikutnya.
Jadi, jangan sampai ketinggalan. Dan silahkan anda subscribe atau bookmark situs ini untuk mengetahui kehebatan microsoft Excel lainnya bersama excelive.com. See you soon...


Memahami Konsep Parameter .Find Untuk Mencari Informasi

menggunakan parameter FIND

Beberapa waktu yang lalu saya mendapat kiriman sebuah email yang berisi permintaan untuk mengulas tentang bagaimana menggunakan parameter FIND untuk mencari sebuah informasi atau sebuah nilai yang terdapat di dalam lembar kerja. Di dalam email tersebut si pengirim juga menyebutkan kalau ia belum mendapati pembahasan yang lengkap tentang penggunaan paremeter FIND di situs internet, bahkan beberapa diantaranya hanya sekedar copy-paste dari situs lainnya.

Oke, sebelum saya mengulas tentang parameter FIND (ala excelive), saya akan sedikit bercerita tentang kemampuan excel yang saya miliki hingga saat ini.
Awalnya saya adalah seorang praktisi di dunia audio-video sebagai seorang editor juga sebagai seorang animator Adobe After Effect, kemampuan yang saya miliki saat itu hampir semuanya berasal dari internet, atau dengan kata lain saya mempelajari secara autodidak. Pada saat itu, Microsoft Excel adalah salah satu aplikasi yang hampir tidak pernah tersentuh meskipun di dalam komputer sudah ada. Bahkan ketika Install ulang Microsoft Office, seringkali saya memilih custom instalation dan hanya memasang Microsoft Word dalam komputer, karena pada saat itu - aplikasi paket Office Word masih dibutuhkan meskipun tidak sesering aplikasi Adobe After Effect atau aplikasi video editor seperti Pinnacle Studio, Adobe Premiere, dan sejenisnya.

Hingga suatu ketika, saya menemui sebuah aplikasi sederhana buatan anak negeri yang dibangun menggunakan Microsoft Excel. Disaat itu pula rasa cinta terhadap Microsoft Excel perlahan-lahan mulai tumbuh berkembang dan perlahan-lahan dunia audio-video ditinggalkan.
Bagi saya, belajar Microsoft Excel tidaklah secepat ketika saya pertama kali mengenal dan mempelajarai aplikasi video editing, butuh proses yang memakan banyak waktu dan tenaga, dan seringkali menemui kesulitan - dan disinilah saya merasakan sebuah keasyikan belajar coding, khususnya VBA Microsoft Excel.

Mengoleksi buku-buku Microsoft Excel lambat laun menjadi sebuah hobi baru dan tanpa sadar menggeser buku-buku audio editing yang terdapat di rak buku. Namun, dari semua buku-buku Microsoft Excel yang pernah saya beli, ternyata belum bisa memuaskan rasa keingintahuan saya tentang kehebatan Microsoft Excel, dan saya menyadari bahwa saya harus memenuhi rasa penasaran ini dan belajar ke gudangnya ilmu, yakni internet.

Jadi kesimpulan dari cerita (curhat) di atas, saya adalah seorang yang hanya memiliki sedikit kemampuan tentang Microsoft Excel yang kebetulan sedikit memahami beberapa kode-kode dalam Microfost Excel dan berusaha semaksimal mungkin untuk menjelaskan dan mengulas secara lengkap tentang apa-apa yang saya ketahui. Dan mudah-mudahan bisa dengan mudah dipahami.

Kembali ke pokok pembahasan parameter .FIND yang ditanyakan oleh seorang pengunjung situs excelive.com
Pada dasarnya, parameter ini memiliki fungsi yang sama ketika anda menekan tombol pintas CTRL+F, akan tetapi anda harus menuliskan beberapa baris perintah agar parameter ini bisa dijalankan layaknya CTRL+F, serta harus dituliskan menggunakan bahasa kode. Dan berikut ini saya akan membahas langkah demi langkah mengaplikasi parameter FIND menggunakan Macro VBA Microsoft Excel.
  1. Oke, pastikan aplikasi Microsoft Excel sudah diinstall dikomputer dan anda sudah membukanya
  2. Tekan tombol pintas ALT+F11 untuk membuka jendela Microsoft Visual Basic Editor, yakni sebuah aplikasi untuk menuliskan bahasa program. Di jendela Microsoft Visual Basic Editor, anda akan dihadapkan dengan sebuah lembar kerja (Workspace) yang beda dengan Microsoft Excel - jadi perlakuannya juga jelas berbeda
  3. Arahkan mouse ke baris menu dan pilih Insert kemudian pilih Module untuk menyisipkan sebuah Module Baru dalam lembar kerja Microsoft Visual Basic Editor. Di sinilah tempat dimana anda harus menuliskan baris-baris kode
  4. Sekarang, anda tuliskan (atau lebih cepatnya) Copy Paste kode berikut ke dalam Module yang sudah anda buat dilangkah sebelumnya
    Sub Cari()
    Set a = Range("A:A").Find("apa", LookAt:=xlValue)
    MsgBox a.Address(False, False)
    End Sub
    
    Penjelasan singkat dari kode diatas
    • Cari
      Adalah sebuah nama yang sifatnya unik yang dijadikan sebagai identitas dari sekumpulan baris-baris perintah yang terdapat didalamnya
    • Set a
      Sebelum mulai membaca kode-kode, saya mengawalinya dengan mengatur dan menentukan sebuah nilai, untuk tutorial ini saya mengatur nilai a
    • Range("A:A").Find("apa", Lookat:=xlValues)
      Baris perintah ini merupakan isi dari nilai a yang memuat beberapa parameter penting antara lain:
      > alamat sebuah range = Range("A:A")
      > paramater pencarian = Find
      > kata atau teks yang akan dicari = "apa"
      > lokasi pencarian = LookAt:=xlValues
      > anda bisa juga menambahkan parameter MatchCase:=True untuk melakukan pencarian yang spesifik
      Bahasa sederhana dari baris perintah ini adalah; Mencari nilai atau teks "apa" berdasarkan model pencarian xlValues di sepanjang kolom A
    • MsgBox a.Address(False, False)
      > Msgbox digunakan untuk menampilkan kotak pesan kepada pengguna
      > a.Address berfungsi untuk membaca nilai yang berhasil di temukan dan ditampilkan sebagai alamat sel
      > (False, False) adalah sebuah parameter untuk membaca sebuah alamat sel dengan menonaktifkan kolom dan baris absolut (tanda $ sebelum kolom dan baris)
      Bahasa sederhana dari baris perintah ini adalah; Menampilkan hasil pencarian kedalam kotak pesan berupa alamat sel dengan format alamat sel relatif
  5. Sampai disini anda sudah berhasil menuliskan parameter FIND untuk mencari sebuah nilai. dan langkah terakhir adalah mengujinya dengan menekan tombol F5 dikeyboard, atau bisa juga dengan mengklik ikon yang terdapat di standard toolbar.

Saya yakin anda bertanya-tanya, bagimana jika dalam sekumpulan data yang ada di lembar kerja terdapat beberapa nilai yang sama dengan kata kunci pencarian, dan bagaimana agar hasil pencariannya menuju ke alamat sel berikutnya.??

Untuk menjawab pertanyaan ini, saya akan membahasnya di edisi berikutnya. Jadi, jangan lupa untuk bookmark situs ini agar anda tidak ketinggalan update terbaru artikel dan tutorial Microsoft Excel bersama excelive.com. See you soon

Incoming Search Terms
key

Dua Cara Mengubah Teks Menjadi Proper Case Menggunakan Macro VBA

proper case macro vba

Jika anda sudah terbiasa dengan jenis atau format sebuah tulisan, saya yakin anda tidak asing dengan istilah Proper Case. Ya, proper case adalah sebuah format tulisan yang mana huruf pertama setiap kata dituliskan menggunakan huruf kapital atau huruf besar, sementara huruf sisanya dituliskan menggunakan huruf kecil.

Ketika anda menggunakan formula Microsoft Excel, melakukan perubahan format penulisan dapat diselesaikan dengan mudah yakni menggunakan formula antara lain :
  • =UPPER
    untuk mengubah setiap huruf menjadi huruf kapital semua
  • =LOWER
    adalah kebalikan dari formula Upper, yakni menjadikan semua huruf dituliskan menggunakan huruf kecil semua
  • =PROPER
    Dalam aplikasi Microsoft Word, format penulisan ini dikenal dengan istilah Sentence Case yakni huruf awal setiap kata dituliskan menggunakan huruf kapital
Syntax penulisan dari masing-masing formula diatas juga dibilang tidak terlalu ribet, bahkan semuanya memiliki kesamaan dalam hal penulisannya. Lihat penggunaan dan penulisannya dalam gambar berikut :
Teks Proper Case

Lantas bagaimana jika menggunakan Macro VBA?
Jika anda memutuskan untuk melakukan perubahan format penulisan khususnya Proper Case menggunakan Macro VBA, maka setidaknya ada 2 (dua) macam cara yang bisa dilakukan.

Kode Pertama
Penulisan kode Macro VBA ini menggunakan parameter StrConv yang mana fungsi utamannya adalah untuk mengubah teks (string) ke bentuk Uppercase, Lowercase, serta Propercase.
Sub Proper1()
  a = StrConv([A1], vbProperCase)
  MsgBox a
End Sub

Kode Kedua
Pada dasarnya, kode Macro VBA berikut ini mengadopsi cara penulisan ketika kita menggunakan sebuah formula di lembar kerja Microsoft Excel. Hal ini dapat dilihat dari parameter awal kode, yakni WorksheetFunction
Sub Proper2()
  a = WorksheetFunction.Proper([A1])
  MsgBox a
End Sub
Kedua cara diatas memiliki fungsi yang sama, yakni merubah penulisan huruf yang terdapat di sel A1 kemudian hasil perubahannya ditampilkan dalam kotak pesan.

Bonus Kode
Dim rr, sel As Range
Set rr = Selection
For Each sel In rr
  sel.Value = WorksheetFunction.Proper(sel)
Next
Nah untuk kode yang satu ini, ia akan secara otomatis mengubah format penulisan huruf sesuai dengan sel atau range yang disorot (pilih) dalam lembar kerja Microsoft Excel, tanpa harus menentukan lokasi alamat sel yang akan dirubah seperti yang sudah saya tuliskan dalam kode pertama dan kedua diatas.
Dan berikut ini tampilannya jika anda menggunakan kode Macro VBA yang saya berikan di Bonus Kode.
proper case Macro VBA







Melihat dan Menemukan Posisi Sel Terakhir Berdasarkan Kolom Atau Baris

proteksi formula dan macro vba

Seperti yang sudah kita ketahui bersama bahwa lembar kerja Microsoft Excel merupakan sebuah tabel yang berukuran sangat besar yang memiliki 2 elemen utama yakni kolom dan baris. Kolom (Column) adalah kotak-kotak yang tersusun secara menurun yang diwakili dengan huruf. Sementara baris (Row) adalah sekumpulan kotak-kotak yang tersusun secara mendatar yang diwakili dengan angka. Dan jika kita menarik sebuah garis lurus antara kolom dan baris, maka kita akan mendapati sebuah titik pertemuan yang lebih dikenal dengan istilah sel atau dituliskan dengan nama Cell dalam bahasa inggris.

Jadi dengan kata lain, sel (Cell) adalah titik pertemuan antara kolom (diwakili dengan huruf) dengan baris (diwakili dengan angka), yang kemudian kita biasa menulisnya dengan cara mengkombinasikan antara keduanya sehingga menjadi sebuah alamat sel.

Sengaja saya awali postingan kali ini dengan pengetahuan dasar tentang lembar kerja Microsoft Excel agar nantinya anda bisa lebih mudah dalam memahami dan menerapkan baris-baris kode yang akan saya paparkan, karena hal ini merupakan salah satu kunci penting untuk memahami tutorial ini.

Ok kita akan memasuki ke pembahasan inti, yakni bagaimana cara melihat posisi sel terakhir yang berisi sebuah nilai berdasarkan baris ataupun kolom, yang akan dibahas secara lengkap bukan asal copy-paste dan asal tempel kode saja - karena tujuan utama dari artikel ini adalah agar anda paham dan tidak asal copy paste.

Sebelum membahas kode-kodenya, terlebih dahulu silahkan lihat sekumpulan data yang saya miliki dalam lembar kerja Microsoft Excel berikut :

Jika anda ditanya posisi baris terakhir dari data yang ada digambar atas, maka saya yakin anda akan menjawab sel A5. Begitu pula jika ditanya posisi kolom terakhir yang berisi nilai, pun saya yakin 100% anda bisa menjawabnya.
Pertanyaan berikutnya adalah, bagaimana caranya membuat sebuah perintah agar bisa langsung secara otomatis menemukan lokasi baris atau kolom terakhir yang sebelumnya sudah disebutkan tadi?
Jawaban singkatnya adalah dengan menggunakan Macro VBA. Dan berikut ulasannya.

Baris Terakhir (ROW)
Dari data gambar diatas, jika kita lihat berdasarkan kolom A maka data tersebut mempunyai 5 buah baris yang berisi nilai, dan baris terakhir berisi kata 'Durian' yang mana posisinya berada di baris ke-5.
Sementara jika dilihat berdasarkan kolom B, maka ia hanya memiliki 1 buah baris yang berisi nilai, yakni kata 'januari'. Begitu pula dengan kolom C.

Bagaimana menerjemahkan statement diatas kedalam bahasa Macro VBA.?
  1. Pertama, tentukan terlebih dahulu posisi kolom yang akan dijadikan sebagai patokan untuk mengetahui jumlah banyaknya baris yang berisi nilai. Untuk statement diatas, maka kolomnya adalah kolom A.
  2. Langkah berikutnya adalah menentukan baris yang akan digunakan sebagai perwakilan dari baris yang berisi sebuah nilai, sebagai contoh baris ke-2.
  3. Kombinasikan langkah pertama (Kolom) dengan langkah kedua (Baris) sehingga menghasilkan baris kode Range("A2") atau bisa juga ditulis Cells(2, 1) atau [A2]
  4. Untuk mengetahui nilai yang terdapat di baris terakhir dan yang paling bawah, maka cara paling mudah untuk mengingat adalah dengan mengartikan kata terakhir dan terbawah ke dalam bahasa inggris, dimana kata terakhir adalah END, sementara kata bawah (saya gunakan istilah menurun) adalah DOWN. Dan hasil penulisan untuk kode ini adalah END(xlDOWN)
  5. Sampai disini anda sudah berhasil mengetahui isi dari baris terakhir, dan berdasarkan contoh data diatas maka hasilnya adalah DURIAN. Dan kombinasi penulisan kodenya adalah
    Range("A3").End(xlDown)
  6. Jika anda ingin mengetahui posisi baris terakhir (bukan isinya), maka kode diatas harus ditambah dengan sebuah perintah yang berfungsi untuk mengetahui indeks baris. Dan sekali lagi, untuk mempermudah dalam mengingatnya silahkan terjemahkan kata baris kedalam Bahasa Inggris.
    dan hasil kombinasi akhir untuk mengetahui posisi baris terakhir adalah
    Range("A3").End(xlDown).Row
    Dan berikut jika kode diatas diletakkan dalam jendela kotak pesan
    Msgbox Range("A3").End(xlDown).Row

Kolom Terakhir (COLUMN)
Untuk melihat isi atau posisi kolom terakhir berdasarkan contoh data yang sudah saya berikan diatas, cara penyelesaiannya sama dengan cara untuk mengetahui posisi baris terakhir hanya saja berbeda dalam hal pembacaannya, yakni dibaca bukan dari atas ke bawah, melainkan di baca dari kiri ke kanan (Bahasa Inggris 'kanan' tahu kan...?).
Dan cara mudah berikutnya untuk menyelesaikan ini adalah dengan menerjemahkan kata kolom kedalam Bahasa Inggris. Bagaimana, mudah bukan...!
Dan berikut adalah hasil akhir untuk melihat posisi kolom terakhir yang ditampilkan didalam kotak pesan
Msgbox Range("A1").End(xlToRight).Column

Sebenarnya ada banyak cara dan metode untuk melihat posisi kolom atau baris terakhir, hanya saja menurut pendapat pribadi saya - cara di atas boleh dibilang cara yang paling mudah dan gampang untuk diingat. Meskipun demikian, kode yang saya tuliskan dibawah ini bisa juga dengan mudah dipahami asalkan sudah memahami konsep tentang lembar kerja Microsoft Excel, seperti kolom, baris, sel, dll.
Silahkan anda bandingkan kode sebelumnya dengan kode-kode berikut yang memiliki fungsi yang sama.
Sub BarisTerakhir()
r = Cells(Rows.Count, 1).End(xlUp).Row 
MsgBox r
End Sub

Sub KolomTerakhir()
c = Cells(1, Columns.Count).End(xlToLeft).Column
MsgBox c
End Sub
Jika anda penasaran dan masih mau bereksperimen untuk mencari posisi baris dan kolom terakhir, salah satu parameter lainnya yang bisa anda gunakan adalah Current Region. Silahkan baca turorialnya disini .
Untuk mengisi sebuah nilai atau data setelah kolom atau baris terakhir, silahkan anda tambahkan nilai + 1 dibelakang kode-kode tersebut
Seperti biasa, untuk melengkapi tutorial yang cukup panjang ini, saya sudah menyiapkan tampilan hasil akhir yang sudah dimodifikasi seperti berikut :


Selamat... anda sekarang sudah berhasil membuat sendiri sebuah kode Macro VBA untuk mencari lokasi sel terakhir baik berdasarkan baris maupun berdasarkan kolom. Semoga tutorial ini ada guna dan manfaatnya.
Silahkan kunjungi kami lain waktu untuk mengetahui kehebatan Microsoft Excel lainnya bersama excelive.com


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.

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 !