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

No comments:

Post a Comment