Cara Filter Data Single Criteria Makro VBA Excel
Cara filter data dengan makro VBA Excel menggunakan single (satu) kriteria pilihan pada setiap jenis/tipe filter yang diterapkan. Single kriteria yang dimaksud adalah hanya mengambil satu kriteria data pada setiap jenis/tipe filter yang digunakan untuk melakukan penyaringan yang dibutuhkan.
Berbeda dengan Filter Data Multi Kriteria👀 yang menerapkan penyaringan data menggunakan 2 (dua) atau lebih kriteria data pada masing-masing jenis/tipe filter. Dengan single kriteria ini lebih mudah dan paling sering digunakan oleh banyak orang. Sementara untuk multi kriteria sering digunakan hanya pada saat ingin mencari beberapa hasil yang mana mengambil 2 kriteria dalam satu tabel data yang sama.
Sekarang langsung saja kita mulai "Tutorial VBA Excel" Part 1 kali ini, yang akan membahas cara membuat filter data menggunakan single kriteria makro VBA excel sebagai berikut:
1. Sobat SD langsung saja membuka file xml tutorial "Belajar VBA Excel👀" lalu buka Visual Basic Editor;
2. Buat UserForm baru untuk digunakan sebagai form filter data seperti pada gambar dibawah ini;
3. Pada UserForm baru ini, kita akan membuat 3 (tiga) ComboBox, 2 (dua) Command Button dan 1 (satu) ListBox yang masing-masing propertiesnya Sobat SD ubah dan sesuaikan seperti yang admin gunakan seperti dibawah, agar lebih mudah memahami tutorial kali ini.
- Pada ComboBox1 yang dibuat ubah propertiesnya menjadi:
- (name) = FilterKec
- Widht = sesuaikan
- Height = 20
- Font = Comic Sans, Style = Bold, Size = 9
- Pada ComboBox2 yang dibuat ubah propertiesnya menjadi:
- (name) = FilterKel
- Widht = sesuaikan
- Height = 20
- Font = Comic Sans, Style = Bold, Size = 9
- Pada ComboBox3 yang dibuat ubah propertiesnya menjadi:
- (name) = FilterModal
- Widht = sesuaikan
- Height = 20
- Font = Comic Sans, Style = Bold, Size = 9
- Pada CommandButton1 yang dibuat ubah propertiesnya menjadi:
- (name) = Filter
- Caption = Filter Data
- Widht = sesuaikan
- Height = 24
- Font = Comic Sans, Style = Bold, Size = 10
- Pada CommandButton2 yang dibuat ubah propertiesnya menjadi:
- (name) = Reset
- Caption = Reset Filter
- Widht = sesuaikan
- Height = 24
- Font = Comic Sans, Style = Bold, Size = 10
- Pada ListBox 1 yang dibuat ubah propertiesnya menjadi:
- (name) = ListBoxFilter
- Widht = sesuaikan
- Height = sesuaikan
- Font = Comic Sans, Style = Bold, Size = 9
- Buat pula 3 label dan tempatkan diatas masing-masing ComboBox, Jika ingin menambah keren tampilan, kalian bisa menambahkan frame. Untuk lebar dan tinggi UserForm, atur sesuai samakan dengan UserForm Input👀 yang dibuat sebelumnya.
4. Setelah membuat UserForm Filter, barulah memasukkan coding/makro untuk menerapkan filter data. Buka Code Window (jendela kode)👀 atau Sobat SD bisa lakukan double clik pada UserForm.
Kemudian membuat coding untuk memasukkan data kecamatan ke dalam ComboBox "FilterKec" dengan menambahkan coding/makro berikut:
Private Sub UserForm_Initialize()
FilterKec.List = Worksheets("ComboBox").Range("A2:A5").Value
End Sub
5. Selanjutnya menampilkan data kelurahan ke ComboBox "FilterKel" dengan menambahkan makro berikut:
Private Sub FilterKec_Change()
If FilterKec.Text = Worksheets("ComboBox").Range("A2").Value Then
FilterKel.List = Worksheets("ComboBox").Range("C2:C5").Value
ElseIf FilterKec.Text = Worksheets("ComboBox").Range("A3").Value Then
FilterKel.List = Worksheets("ComboBox").Range("D2:D4").Value
ElseIf FilterKec.Text = Worksheets("ComboBox").Range("A4").Value Then
FilterKel.List = Worksheets("ComboBox").Range("E2:E5").Value
ElseIf FilterKec.Text = Worksheets("ComboBox").Range("A5").Value Then
FilterKel.List = Worksheets("ComboBox").Range("F2:F4").Value
End If
End Sub
6. Untuk data pada ComboBox "FilterModal", kriteria filter yang digunakan anggap saja ada yaitu berdasarkan modal dari 1 juta s/d 5 juta dan yang kedua adalah dari 5 juta s/d 10 juta. Maka untuk membuat kriteria filter itu, Sobat SD perlu menambahkan data filter di Sheets ComboBox.
Sebenarnya bisa dilakukan dengan membuat makro seperti yang dilakukan pada Cara I membuat ComboBox👀 yang telah dipelajari sebelumnya, namun agar seragam dengan cara yang digunakan selama ini, kita buat saja di Sheets "ComboBox".
Buat data untuk ditampilkan nanti pada ComboBox "FilterModal" di sheet "ComboBox" seperti pada gambar yang ditandai dibawah ini.
Setelah itu tambahkan makro berikut FilterModal.List = Worksheets("ComboBox").Range("H2:H3").Value pada Prosedur UserForm Initialize, sehingga pada Prosedure Initialize coding setelah ditambahkan menjadi seperti berikut:
Private Sub UserForm_Initialize()
FilterKec.List = Worksheets("ComboBox").Range("A2:A5").Value
FilterModal.List = Worksheets("ComboBox").Range("H2:H3").Value
End Sub
7. Menampilkan data hasil penyaringan/filter yang dilakukan pada "ListBoxFilter" agar dengan cara menambahkan coding/makro berikut:
Private Sub Tampil_ListBoxFilter()
ListBoxFilter.Clear
Set Ws = Worksheets("FilterData")
irow = Ws.Cells(Rows.Count, 1).End(xlUp).Row
With ListBoxFilter
.AddItem
.ColumnCount = 8
.ColumnWidths = "50;80;80;80;80;80;80;80"
.List(.ListCount - 1, 0) = "KODE ID"
.List(.ListCount - 1, 1) = "NAMA"
.List(.ListCount - 1, 2) = "ALAMAT"
.List(.ListCount - 1, 3) = "KECAMATAN"
.List(.ListCount - 1, 4) = "KELURAHAN"
.List(.ListCount - 1, 5) = "TGL. LAHIR"
.List(.ListCount - 1, 6) = "JENIS KELAMIN"
.List(.ListCount - 1, 7) = "MODAL USAHA"
End With
For i = 9 To irow
With ListBoxFilter
.AddItem
.List(.ListCount - 1, 0) = Ws.Cells(i, 1)
.List(.ListCount - 1, 1) = Ws.Cells(i, 2)
.List(.ListCount - 1, 2) = Ws.Cells(i, 3)
.List(.ListCount - 1, 3) = Ws.Cells(i, 4)
.List(.ListCount - 1, 4) = Ws.Cells(i, 5)
.List(.ListCount - 1, 5) = Ws.Cells(i, 6)
.List(.ListCount - 1, 6) = Ws.Cells(i, 7)
.List(.ListCount - 1, 7) = Ws.Cells(i, 8)
End With
Next i
End Sub
8. Tahapan selanjutnya yaitu membuat form excel untuk menampilkan data hasil filter dengan cara :
Buat Worksheet baru dan beri nama "FilterData"
Lalu buat head untuk menampilkan data hasil filter seperti gambar dibawah ini:
Range (A5:H6) akan menjadi inputan kriteria dari filter data sedangkan Range (A7:H50) akan menjadi output hasil filter data.
Lanjut ke tahap selanjutnya adalah menambahkan coding/makro pada eksekutor filter yaitu CommanButton "Filter" berikut:
Private Sub Filter_Click()
Dim KriteriaFilter As Range
Dim HasilFilter As Range
Dim SumberFilter As Range
irow = Worksheets("BelajarVBA").Cells(Rows.Count, 1).End(xlUp).Row
Worksheets("FilterData").Range("D6").Value = FilterKec.Value
Worksheets("FilterData").Range("E6").Value = FilterKel.Value
If FilterModal = "1 jt s/d 5 jt" Then
Worksheets("FilterData").Range("H6").Value = "<5000001"
ElseIf FilterModal = "5 jt s/d 10 jt" Then
Worksheets("FilterData").Range("H6").Value = ">5000001"
End If
Set KriteriaFilter = Worksheets("FilterData").Range("A5:H6")
Set HasilFilter = Worksheets("FilterData").Range("A8:H50")
Set SumberFilter = Worksheets("BelajarVBA").Range("A1:H" & irow)
SumberFilter.AdvancedFilter xlFilterCopy, KriteriaFilter, HasilFilter
Tampil_ListBoxFilter
End Sub
9. Terakhir adalah coding untuk mereset filter agar
setiap selesai dan ingin melakukan filter data yang baru form filter
kembali kosong dan terapkan pada ComboBox "Reset" seperti dibawah ini:Private Sub Reset_Click()
FilterKec.Value = ""
FilterKel.Value = ""
FilterModal.Value = ""
ListBoxFilter.Clear
End Sub
Nah Sobat SD, itulah diatas cara membuat filter data dengan menggunakan single criteria dimana digunakan untuk mencari dan menampilkan data sesuai yang dibutuhkan saja. Silahkan berkunjung ke Channel Youtube Sobat SD untuk mendapatkan tutorial ini dalam bentuk video. Semoga bermanfaat, Wassalam.
Post a Comment for "Cara Filter Data Single Criteria Makro VBA Excel"