Skip to content Skip to sidebar Skip to footer

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.

Filter Data Single Criteria VBA Excel

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;

Membuat form filter data

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.

Membuat ComboBox Filter Modal

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:

    Membuat form excel untuk filter data

  • 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"