Tuesday, December 27, 2016

Trik menyembunyikan karakter dengan Custom Format


Assalamualaikum.

Pernah tau kenapa walaupun tertulis "ini data teks" tapi tiap kolom dari sekumpulan data diatas tetap bisa dijumlahkan tanpa ada error ? Pernah tau bahwa data secara default data yang bertipe numerik selalu berposisi rata kanan ?

Jawaban nya adalah : karena isi cell dari tiap-tiap kolom pada data diatas sudah di akalin :). Yes.. soal akal-meng akali memang akan banyak dibahas. Nama keren nya tips, trik, hack atau apalah. Nah untuk trik kali ini akan dibahas mengenai bagaimana Custom Format dapat menyembunyikan isi dari sebuah Cell.

Pada bahasan kali ini juga menunjukan bahwa Format sebetulnya ada berada "dilapisan atas" pada isi dari sebuah Cell. Dengan kata lain, Format hanyalah sebuah "Tabir" yang menutupi. Nah tabir inilah yang akan kita gunakan melalui cara Custom Formatting.

Ok langsung saja ya ? pertama, siapkan dulu data set nya. Seperti pada contoh gambar animasi diatas ada pada Range E3:K16. Pada data set ini terdapat nilai 0 (Nol) yang akan kita tutupi dengan Custom Format tadi. Terlihat pada gambar dibawah adalah data set sebelum dilakukan Custom Format. Nilai 0 terlihat sudah di highlight dengan warna pink.

Data asli sebelum menggunakan Custom Format

Langkah selanjutnya adalah blok semua data set nya (Range E3:K16), klik kanan dan pilih Format Cell atau shortcut Ctrl + 1, pilih Custom Format. Dan pada kotak Type : tuliskan [=0]"ini data teks";General seperti pada contoh dibawah dan klik OK. Dan lihat hasil nya :D


Semoga bermanfaat.

Wassalam.

Sunday, December 25, 2016

Tips Data - Rumus Sum yang dinamis

Assalamualaikum.

Pernah mengalami laporan yang kita buat, setelah di edit / ditambah data baru, angka nya tidak terupdate karena kita lupa mengupdate rumus Sum / Penjumlahan nya seperti pada contoh Gbr 1 dan Gbr 2 dibawah ? 

Gbr 1 - Rumus Sum menjumlahkan isi Range B2:B5

Gbr 2 - Data ditambahkan, rumus Sum tidak berubah



















Ternyata masalah seperti ini bisa di "akali" dengan menggunakan Named Range / Range yang diberi nama. Kalau rumus nya pada contoh Gbr 1 diatas adalah =Sum(B2:B5), maka yang perlu di "akali" hanyalah bagian B5 nya saja.

Pertama, buka Name Manager (shortcut : Ctrl + F3). Berikan nama pada kotak Name:. Dan pada kotak Refers to klik dan pilih cell paling ujung pada kolom B yang akan dijumlahkan, dalam contoh Gbr 3 dibawah merujuk pada Cell B6. 

Gbr 3 - Name Manager

Jangan lupa hilangkan tanda $. Karena yang kita butuhkan adalah rumus yang dinamis bukan statis. Kalau sudah, klik OK. Selanjutnya rumus Sum diganti dari =Sum(B2:B5) ke =Sum(B2:Nama Range nya) seperti pada contoh Gbr 4 dibawah.

Dan Insya Allah sekarang rumus kita menjadi rumus Sum yang dinamis :). Berapapun data yang ditambahkan kita tidak perlu khawatir angka nya tidak berubah.

Semoga bermanfaat.
Wassalam.

Gbr 4 - Rumus dinamis dengan mengganti sesuai Named Range



Friday, October 28, 2016

Dasar Macro - menggunakan Tanggal sebagai kriteria (Advanced Filter bag. 3)

Bismillah..

Setelah sebelumnya membahas mengenai dasar penggunaan Macro Advanced Filter disini dan disini, kali ini saya akan coba bahas bagaimana menggunakan Macro dan Advanced Filter untuk memfilter data bertipe tanggal.

Untuk diperhatikan bahwa menggunakan Advanced Filter (juga Data Filter) dan bekerja dengan tanggal biasanya akan sedikit tricky. Artinya keberhasilan skrip yang kita buat akan sangat banyak tergantung dengan format data nya dan setting format tanggal pada komputer yang digunakan. Pada saat file contoh dibuat setting penanggalan pada komputer saya adalah dd/mm/yyyy. Silahkan download 2 file contohnya disini dan disini.

Sekedar untuk menyegarkan, Syntax Advanced Filter beserta argumen nya adalah sebagai berikut :

expression.AdvancedFilter(Action, CriteriaRange, CopyToRange, Unique)

expression
Berupa Range, dapat juga berupa Variabel yang merujuk ke obyek Range

Action
Argumen ini wajib disertakan. Argumen ini terdiri atas 2 pilihan yaitu :

1.        xlFilterCopy untuk memfilter dan memindahkan hasilnya ke tempat lain
2.        xlFilterInPlace untuk memfilter data ditempat datanya (tanpa memindahkan hasilnya)


CriteriaRange
Range Kriteria / Parameter filter. Bersifat Optional. Dapat digabungkan dengan karakter Wildcard seperti *, ? dan lain-lain

CopyToRange
Adalah Range tujuan apabila argumen Action menggunakan pilihan xlFilterCopy

Unique
Argumen ini dipakai untuk memfilter hanya record yang unik saja. Default dari argumen ini adalah False


Contoh :

Range("Database").AdvancedFilter Action:=xlFilterCopy, _
    CriteriaRange:="Criteria", CopyToRange:=Sheets("FilteredList").Range("A1"), _
    unique:=False



Hal yang paling penting untuk diperhatikan dari syntax diatas saat menggunakan Advanced Fiter untuk memfilter data bertipe tanggal adalah Format kriteria pada saat penulisan kriteria nya pada argumen CriteriaRange. Format penulisan kriteria haruslah mm-dd-yyyy (Format penanggalan Amerika). Hal ini berkaitan dengan paragraf 2 diatas.

Untuk sebuah data dengan format tanggal yang “tidak lazim” seperti dibawah ini sebisa mungkin lakukan proses format terlebih dahulu.



Pada file contoh pertama di contohkan bagaimana parameter Kriteria ditulis langsung disebelah tabel. Pada file kedua parameter dituliskan melalui sebuah TextBox pada sebuah Userform dan hasil filter ditampilkan melalui sebuah Listbox.

Saturday, October 8, 2016

Training Dasar Excel Macro - Privat dan Corporate

Bismillah..

Kepada rekan-rekan yang butuh pelatihan dasar Excel Macro, baik Privat dan Korporasi / Perusahan yang ingin agar karyawan nya dapat bekerja dengan lebih efisien dengan Excel, Grids and Logic dapat memberikan sesi pelatihan dasar Excel Macro. Dengan materi yang dikemas sedemikian rupa maka untuk individu yang tidak mempunyai latar belakang pemrograman sekalipun dapat dengan mudah memahami nya.


Durasi pelatihan biasa nya memakan waktu 5 - 8 Jam perhari. Tergantung kapasitas pemahaman peserta. Untuk privat diadakan pada hari Sabtu dan Minggu di kantor kami :

Gedung Edugate

Lantai 1, suite 1B
Jl. RS Fatmawati, No. 99
Cilandak, Jakarta Selatan
Jakarta

Pemilihan hari pelatihan sangat fleksibel. Bisa diatur sesuai calon peserta. Baik Privat maupun Perusahaan.

Apa yang anda dapatkan selain Ilmu setelah mengikuti pelatihan dengan kami ? Anda gratis mendapatkan layanan Tanya - Jawab melalui email, SMS, telp mengenai materi pelatihan selama 1 Bulan.


Untuk Informasi lebih lanjut silahkan hubungi kami :
  • Telepon : 021 759 11734
  • Hp : 0811 980 362
  • Email : gridsnlogic@gmail.com

Friday, October 7, 2016

Dasar Macro - Menggunakan Advanced Filter dengan multi kriteria (Advanced Filter 2)

Melanjutkan pembahasan mengenai Advanced Filter sebelumnya disini, dikesempatan kali ini akan dijelaskan dasar menggunakan Advanced Filter dengan menggunakan multi kriteria dengan operator AND atau OR.

Silahkan download file contoh nya disini dan disini.

Untuk menggunakan multi kriteria dengan operator AND atau OR yang paling harus diperhatikan adalah penulisan susunan range kriteria nya. Seperti contoh gambar dibawah ini terlihat untuk operator AND maka susuan items kriteria / criterion nya dalam 1 field disusun menurun kebawah.

Penyusunan Kriteria Logika AND dan OR


Range Kriteria untuk Logika AND pada file Contoh

Sedangkan untuk operator OR maka susunan kriteria nya dibuat melebar kesamping. Karena operator OR selalu melibatkan lebih dari 1 pilihan, maka Field yang menjadi syarat berikut nya HARUS ditulis kembali disebelah kanan nya dengan kriteria berikutnya menempati baris berikutnya.

Range Kriteria untuk Logika AND pada file Contoh

Untuk diingat kembali bahwa penulisan Field yang menjadi Syarat / Kriteria harus sama persis dengan yang ada pada tabel / database.

Pada contoh file terlampir juga ditunjukan bagaimana caranya untuk menampilkan semua record seperti semula dengan metode ActiveSheet.ShowAllData. Metode ShowAllData ini dapat digunakan baik pada Advanced Filter maupun Auto Filter.


Semoga penjelasan ini dapat dipahami dengan mudah :D

Sunday, October 2, 2016

Dasar Macro - Menggunakan Advanced Filter ( 1 )

Bismillah..

Sebelumnya silahkan download dulu file contoh nya disini

Salah satu kelebihan Advanced Filter apabila dibandingkan dengan Autofilter adalah kemampuan Advanced Filter untuk menggunakan kriteria yang lebih kompleks (Kata Advanced atau lebih maju memang digunakan untuk menunjukan hal ini). Advanced Filter ada dibawah Obyek Range.

Dengan menggunakan Macro, Penggunaan Advanced Filter akan menjadi sangat bermanfaat khusus nya apabila kita bekerja dengan sebuah Tabel / Database Excel.

Dalam syntax Advanced Filter, secara garis besar ada 5 komponen yang harus dipahami. Komponen-komponen tersebut adalah :

1.      Range List / Tabel / Database sebagai sumber data
2.    Action : Jenis filter apa yang akan diterapkan. Filter langsung pada Database  atau copy hasil filter ke tempat lain.
3.     Kriteria / CriteriaRange
4.  Range Tujuan / CopyToRange : berkaitan dengan Nomer 2 apabila kita  memilih untuk mengcopy hasil filter ke tempat lain
5.     Unique : apabila kita menghendaki data yang di filter hanya yang Unik saja.

Bentuk Syntax secara keseluruhan :

Range.AdvancedFilter (Action, Kriteria, RangeTujuan, Unique)

1.      Range List / Tabel / Database
Seperti yang dijelaskan diatas, Range disini adalah sumber data yang akan kita filter. Usahakan List / Tabel ini haruslah berkaidah Database (Baris awal diformat Bold sebagai Header, Baris berikutnya adalah data, Tidak ada baris dan kolom kosong, Tidak ada Header dan data yang di Merge / digabung, dst – akan dibahas di kesempatan lain).

2.      Action
Jenis Filter yang akan diterapkan. Ada 2 jenis filter yaitu : xlFilterInPlace dan xlFilterCopy. xlFilterInPlace berfungsi memfilter data langsung pada Database nya. Sedangkan xlFilterCopy mengcopy hasil filter ke tempat lain.

3.      Kriteria / CriteriaRange
Range yang akan digunakan sebagai petunjuk bagi Excel, parameter data yang akan di filter. Range yang digunakan sebagai Kriteria ini HARUS persis sama dengan Header dari Database kita. Untuk lebih mudah nya, copy saja kolom-kolom Header nya yang akan kita gunakan sebagai kriteria. Urutan Kolom-kolom nya tidak harus sama persis. Pada contoh gambar dibawah terlihat urutan kriteria nya Nama, Jkel dan Jurusan mulai dari B1 sampai dengan D2.

4.      Range Tujuan / CopyToRange
Pilihan ini hanya berlaku apabila kita menggunakan pilihan Action xlFilterCopy. Karena apabila kita memilih untuk menggunakan Action xlFilterInPlace. Kecuali setelah difilter menggunakan xlFilterInPlace data yang sudah difilter akan dipindahkan ke tempat lain. Masalah nya jadi kerja dua kali kan ? :D

5.      Unique
Pilihan untuk yang digunakan untuk memilih data yang unik saja atau tanpa duplikat.

Pengaturan Tabel, Kriteria dan Tujuan Advanced Filter


Maka apabila melihat contoh gambar, penulisan skrip nya menjadi :


Range("A4:E14").AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=Range("B1:D2"), _
CopyToRange:=Range("G4:K4"), _
Unique:=False

Hasil setelah skrip lengkap di jalankan

Monday, September 26, 2016

Tips - mengembalikan format sebuah Tabel ke range normal

Bismillah.

Memformat data menjadi sebuah Tabel akan banyak membantu. Salah satu nya apabila kita bekerja dengan Pivot Table. Dengan memformat data kita ke format Tabel maka sumber data dari Pivot Table kita akan otomatis manjadi dinamis menyesuaikan banyak nya data.

Tapi ada saat nya kita tidak memerlukan lagi format Table tersebut. Dan ingin mengembalikan data kita ke format normal. Di Excel 2010 dan 2013 ada 2 (untuk Excel 2007 lakukan cara kedua) cara untuk mengembalikan nya seperti cell biasa :

Cara pertama :

Melalui menu Design | Tools | klik Convert To Range. Excel akan menampilkan pesan "Do you want to convert the Table to a normal Range ?". Pilih Yes.



Cara kedua :

Klik kanan di sembarang tempat didalam Tabel, Menu Table, pilih Convert To Range. Sama seperti cara pertama, Excel akan menampilkan pesan konfirmasi, maka pilih Yes.


Setelah melakukan salah satu cara tersebut diatas, langkah selanjutnya tinggal menghapus format cell nya melalui menu Home | Cell Styles, dan pilih Normal.

Semoga bermanfaat.

Friday, September 23, 2016

Tips Macro - Mengatasi pesan Error yang mengganggu

Saat sedang menuliskan skrip / coding, ada saat dimana kita tiba-tiba ingat sesuatu yang kemudian memaksa kita untuk menuliskan baris skrip baru dibawahnya. Padahal skrip yang sedang kita tulis tersebut belum selesai.

Yang terjadi adalah akan muncul pesan Error yang bertuliskan “Compile Error – Expected..” yang artinya Excel sedang berharap kita menyelesaikan syntax dari skrip yang kita tulis seperti gambar dibawah.



Untuk mengatasi hal ini, selagi berada di VBE, klik Tools | Options | dan pilih Tab Editor. Pada grup Code Settings, hilangkan tanda centang pada kotak Auto Syntax Check. Kemudian klik OK.



Dengan begini kita bebas memindahkan kursor walaupun baris yang kita tulis belum selesai. Dan Excel tetap memberitahukan kita apabila ada kesalahan syntax / penulisan dengan cara baris yang kita tuliskan berwarna merah :)




Selamat mencoba.

Wednesday, September 21, 2016

Dasar Macro - 2 cara mudah memilih dan aktifkan range

Bismillah..

Saat bekerja dengan sebuah tabel / database / kumpulan record dengan VBA ada 2 cara untuk memilih dan mengaktifkan range tabel kita. Cara pertama dengan menggunakan property CurrentRegion, dan cara kedua adalah dengan cara memberi nama tabel kita tersebut (named range - lihat contoh animasi dibawah untuk cara memberikan nama sebuah Range).



Untuk lebih memudahkan pemahaman bahasan ini, silahkan download file nya disini.

Terlihat pada contoh animasi diatas dan dalam file contoh, tabel / database ada mulai dari Range E6 sampai R45.

Cara 1 - CurrentRegion

Property CurrentRegion adalah bagian dari Obyek Range. Property CurrentRegion adalah apabila sebuah / sekumpulan Range dikelilingi oleh kombinasi baris dan kolom yang kosong.

Dalam file contoh dan animasi diatas, terlihat bahwa diluar range tabel database kita (E6 sampai dengan R45) semua nya dikelilingi baris dan kolom kosong. Dengan satu baris Macro saja, kita sudah bisa memilih / mengaktifkan database kita.

Cara 2 - Memilih Range yang diberi nama

Cara ini sama mudahnya dengan cara pertama. Perbedaan nya adalah database kita harus diberi nama sebelumnya. Dalam file contoh, Range E6 sampai dengan R45 diberi nama "Data".

Skrip nya pun hanya perlu satu baris saja. Dengan mudah tabel kita sudah dapat diaktifkan.

Pertanyaan berikutnya mungkin bagaimana kalau jumlah data nya bersifat dinamis / bertambah terus ?.. jawaban nya adalah dengan memformat database tersebut menjadi sebuah tabel :). Silahkan cek postingan sebelumnya.

Akhir kata, silahkan pilih cara yang paling mudah. Atau mungkin ada cara lain ? silahkan berikan komentar anda :).

Thursday, June 30, 2016

Contoh Macro - Menyembunyikan / Menampilkan Baris dengan kondisi

File berikut (disini) ini adalah jawaban pertanyaan seorang member di grup Facebook Excel VBA Usergroup. Pertanyaan nya :

apabila cell C1=1 maka yg tampil hanya Form1 saja (row 10-15 diHide), dan bila cell C1=2 maka yg tampil hanya Form2 saja (row 3-8 yg diHide)... kira-kira seperti apa codenya???

Skrip nya dibuat di Event Worksheet_Change dan skrip lengkap nya seperti ini :


Penjelasan :

Skrip ini hanya mengenal nilai 1 dan 2, yang dimasukan di cell C1. Dalam skrip terlihat menggunakan perintah Select Case. Terlihat apabila nilai pada cell C1 dimasukan 1 maka baris 4 sampai 8 akan di Hide.

Begitu juga apabila di C1 dimasukan nilai 2 maka baris 11 sampai dengan 15 akan di Hide. Diluar itu baris 4 sampai 15 tidak akan di hide dengan cara meng set nilai property Hidden nya menjadi False.

Semoga dapat dipahami.

Opini - Excel sebagai Aplikasi Database ?

Ide untuk menulis hal ini sebetul sudah lama. Tapi kebetulan kemarin malam, ada seseorang yang bertanya grup Facebook Komunitas Excel VBA, dan inti pertanyaan nya adalah kalau mau buat aplikasi, kenapa nggak langsung aja pake MS Access ?.

Dengan segala keterbatasan, yang saya paham tentang konsep sebuah Database singkatnya adalah sekumpulan Informasi sejenis yang terdiri dari satu atau beberapa Tabel yang saling berhubungan. Dan dalam Tabel tersebut paling tidak mempunyai satu atau beberapa Field (kolom) dan Record (Baris). Dan Excel dalam hal ini sudah mewakili bahwa dengan sebuah Sheet kita dapat menciptakan sebuah Tabel. Ada Kolom dan Baris. Tapi walaupun begitu, Excel bukanlah sebuah aplikasi Database yang terintegrasi. Excel adalah sebuah aplikasi Spreadsheet. Itulah sebabnya Microsoft menciptakan MS Access yang dibuat memang untuk Aplikasi Database.

Maka berikut jawaban saya :
  1. Apabila kasus nya tidak butuh Database yang saling berkaitan / Relational Database
  2. Apabila kasus nya tidak butuh banyak Tabel
  3. Volume Datanya <= 5000 an baris / Rows per bulan

Maka kalau kondisi tersebut diatas terpenuhi, maka menggunakan Excel VBA untuk pilihan menciptakan sebuah aplikasi sih sah-sah aja :) walaupun mau tetap bersikeras menggunakan Excel VBA untuk menciptakan sebuah aplikasi Database, ya monggo..

Atau mungkin, sebagai alternatif pilihan, gunakan Excel VBA sebagai perantara / interface nya, dan tabel-tabel Database nya gunakan Aplikasi MS Access atau MySQL. Walaupun secara Ilmu saya belum kesampaian :)

Pesan saya, kalau mau buat sebuah aplikasi yang betul-betul sebuah Database, artinya Tabel-tabel nya saling berhubungan dan terintegrasi, maka akan sangat bijak sana untuk memilih aplikasi yang betul-betul aplikasi Database semacam MySQL, MS Access, SQL Server dan yang lain nya.

Akhir kata, ini hanya sebuah Opini. Silahkan utarakan pendapat anda :)

Thursday, June 9, 2016

Dasar Macro - Autofilter (3) Menggunakan kriteria 2 tanggal

Sesuai posting saya sebelumnya mengenai Autofilter yang kedua, dan yang pertama, pada bahasan kali ini akan saya bahas cara untuk mem filter data mengunakan Autofilter dengan menggunakan 2 tanggal sebagai kriteria.

Download file bahasan ini disini.

Yang perlu diketahui apabila menggunakan 2 tanggal pada Autofiter sebagai kriteria, nilai yang kita gunakan sebagai kriteria harus selalu di konversi ke format tanggal US atau dd/mm/yyyy. Karena Excel hanya mengenal sistem format US untuk tanggal.



Terlihat pada screenshot Prosedur diatas :

  1. Variabel yang akan digunakan sebagai kriteria selalu di deklarasikan sebagai variabel yang bertipe Date / Tanggal
  2. Nilai yang diberikan kepada 2 variabel Date1 dan Date2 sebagai kriteria, masih menggunakan format sesuai data yang ada (dd/mm/yyyy)
  3. Disinilah terlihat proses merubah / menkonversikan tipe Variabel Date1 dan Date2 menjadi format US dengan metode Format(Date1, "mm/dd/yyyy")
Semoga bermanfaat.

Wednesday, June 8, 2016

Tips - menghasilkan banyak Report dari Pivot Table sekali klik

Untuk yang sering bekerja dengan Pivot Table, ada sebuah fasilitas yang mungkin saja terlupakan. Atau mungkin banyak yang tidak tau. Fasilitas ini berfungsi untuk menghasilkan banyak report dari sebuah Pivot Table, yang secara otomatis dibuat menjadi masing-masing Sheet. Tanpa macro. Fasilitas ini sudah ada sejak Excel 2007.

File contoh nya silahkan download disini.

Langkah nya seperti berikut :

  1. Buat lah sebuah Pivot Table dari sebuah database / tabel data
  2. Setelah Pivot Table siap, pastikan Pivot Table tersebut mempunya Report Filter - dalam file contoh, Report Filter nya adalah kolom Agent ID
  3. Klik sembarang Cell didalam Pivot Table
  4. Pada Excel 2010, klik tab Options
  5. Pilihan Show Report Pages pada tab Options
  6. Pada grup PIvotTable, klik Options, dan pilih "Show Report Filter Pages"
  7. Excel akan menampilkan pesan Show Report Filter Pages, klik OK
  8. Lihat Excel akan bekerja sendiri menghasilkan Report yang sudah dipisahkan per Sheet sesuai dengan Report Filter yang kita buat :)
Dalam file contoh, data Agent ID yang dijadikan Report Filter mungkin tidak banyak. Coba bayangkan apabila data nya ada puluhan ? atau Ratusan ? 

Fasilitas ini jelas sangat menghemat waktu.

Happy Exceling :)



Monday, June 6, 2016

Dasar Macro - AutoFilter (2)

Setelah sebelumnya dibahas cara me-filter 1 kolom dengan 1 kriteria saja (disini), dalam bahasan ini akan dibahas bagaimana caranya me filter 2 kolom dan salah satu kolom nya menggunakan 2 kriteria.

Sedikit catatan saja untuk bahasan yang pertama, mungkin ada yang bertanya mengenai fungsi dan perbedaan AutoFilterMode dan FilterMode ? kalau nggak ada yang bertanya, biar saya jelasin aja :)..

Fungsi AutofilterMode (dipadukan dengan logika True / False) adalah untuk mengetahui apakah Autofilter sedang aktif. Argumen nya True / False. Kalau True, berarti sedang Aktif. Dan False Tidak Aktif. Penulisan lengkap skrip nya :
AutoFilterMode = False

Fasilitas Autofilter dalam kondisi tidak di aktifkan


Sedangkan FilterMode (juga dipadukan dengan logika True / False) adalah untuk mengetahui apakah data sedang terfilter atau tidak. Argumen yang digunakan juga True / False. Kalau True, berarti data sedang dalam kondisi Terfilter, dan False berarti data tidak dalam kondisi terfilter. Sudah kelihatan beda nya kan ? apabila data dalam kondisi terfilter, terlihat nomer baris sebelah kiri menjadi biru.

Tabel data sedang dalam kondisi Terfilter

Untuk pembahasan kali ini, silakan download file contoh nya disini.

Seperti yang sudah dijelaskan diatas, kali ini akan dicontohkan bagaimana caranya memfilter 2 kolom, dan 1 kolom menggunakan lebih dari 1 kriteria.

Untuk lebih jelas nya coba tekan Alt + F11 untuk menampilkan VBE dan buka Module nya.

Berikut adalah skrip untuk prosedur Button2 yang berfungsi untuk memfilter data :

Sub Button2_Click()
    Range("A1:L1").AutoFilter
    
    Range("A1:L1").AutoFilter field:=6, Criteria1:=Array("Alabama", "Arizona", "Arkansas"), _
    Operator:=xlFilterValues
    
    Range("A1:L1").AutoFilter field:=4, Criteria1:="High"
End Sub

Untuk menggunakan banyak kriteria, disini digunakan metode Array, kemudian diikuti dengan kriteria nya. Kriteria yang digunakan adalah Alabama, Arizona dan Arkansas. Jangan lupa setelah itu ikuti dengan argumen Operator:=xlFilterValues.

Sebenarnya, untuk kriteria yang banyak kita bisa menggunakan operator xlOr atau xlAnd. Hanya nggak tau kenapa cara itu nggak pernah bisa. Paling tidak di Excel 2010 yang saya gunakan. Apapun alasan nya, ternyata di luar sana, orang-orang banyak menyarankan dengan metode Array seperti diatas.

Kemudian menyusul dibagian bawah nya terihat bagaimana caranya untuk memfilter field Order Priority yang jatuh pada kolom ke 4, dengan kriteria High.

Semoga bisa dicerna ya penjelasan nya ? :)

Untuk berikutnya saya akan coba menjelaskan bagaimana menggunakan tanggal sebagai kriteria nya.

Sunday, June 5, 2016

Dasar Macro - Memfilter data dengan AutoFilter (1)

Memfilter data dengan fasilitas Auto Filter akan sangat banyak manfaat nya apabila kita ber “urusan” dengan data yang lumayan banyak. Apalagi kalau kita punya rencana untuk buat satu aplikasi dengan Macro / VBA.  

sebuah Tabel Data dengan Autofilter yang sedang Aktif

Daripada menggunakan Loop dan men-cek satu per satu isi cell nya, menggunakan Auto Filter akan menjadikan nya lebih cepat dalam proses seleksi dan evaluasi data yang kita inginkan.

Pada tulisan ini, dan beberapa bahasan berikutnya, akan dibahas dasar-dasar penggunaan fasilitas Auto Filter untuk mem-filter sebuah tabel data dengan menggunakan Macro.

Sebelum mulai membahas Auto Filter, download dulu file nya disini. Buka VBE dengan cara mengklik Alt + F11, dan klik Module nya.

Pada dasarnya penggunaan fasiltas Auto Filter dibagi menjadi 4, yaitu :
  1.     Mengaktifkan Autofilter
  2.     Memfilter data
  3.     Menampilkan semua data
  4.     Dan menghapus / meng non aktifkan Autofilter


1.      Mengaktifkan Autofilter dan Memfilter data

Mengaktifkan Auto Filter metode nya dengan syntax : range.AutoFilter (Field, Criteria1, Operator,field, Criteria2 )

Cara mengaktifkan Autofilter pada file contoh dapat dilihat pada prosedur “Apply Filter”

If ActiveSheet.AutoFilterMode = False Or ActiveSheet.FilterMode = False Then
        Range("A1:G1").AutoFilter
       
        Range("A1:G1").AutoFilter Field:=3, Criteria1:="Algeria"
             
End If

Penjelasan :

Terlihat pada range A1 sampai G1 sebagai Header akan di filter. Setelah itu kolom / field ketiga, yaitu custCountry sebagai field yang akan di filter, dan kriteria yang digunakan adalah nama “Algeria”.

2.      Menampilkan semua data

Untuk menampilkan semua data, atau kalau dengan cara manual ketika kita memilih “Show All Data” untuk menghapus kriteria filter, skrip nya ada pada prosedur ShowAllData. Skrip nya seperti berikut :

If ActiveSheet.AutoFilterMode = False Then
        MsgBox "Filter tidak Aktif !"
        Exit Sub
       
        Else
            If ActiveSheet.FilterMode = False Then
                MsgBox "Data tidak di filter"
                Exit Sub
            End If
    End If

With ActiveSheet
     .ShowAllData
End With

Penjelasan :
Terlihat ada 2 kondisi diawal prosedur. Apabila Autofilter nya tidak aktif maka akan menampilkan pesan “Filter tidak aktif !”. Dan apabila data tidak terfilter atau sedang dalam kondisi menampilkan semua data maka akan ditampilkan pesan “Data tidak difilter !”.

Sedangkan metode menampilkan semua data ada pada baris .ShowAllData. Yang berarti dengan Sheet yang aktif maka data nya akan ditampilkan semua.

3.   Menghapus / Men non aktifkan filter


Metode menghapus / men non aktifkan Autofilter yang sedang aktif hanya dengan cek terlebih dahulu apakah AutoFilter sedang aktif ? kalau ya (pada Prosedur ClearFilter, baris If ActiveSheet.AutoFilterMode)  maka tinggal menambahkan argumen False karena argumen ini bersifat logika True / False.

Semoga bisa dicerna ya ? :) mohon maaf kalau bahasa nya rada blepotan. Hehehe