VBA filtriranje
Filteri su veoma korisna funkcionalnost koja omogućava da na osnovu zadatog kriterijuma vršimo filtriranje sadržaja u tabeli ili oblasti nad kojom je prethodno primenjen autofilter. Ovo može da se postigne na više načina, ali uvek postoji neki događaj kojim pokrećemo pomenutu akciju. U ovom „receptu“ ćete saznati kako da filtrirate tabelu uz pomoć, prethodno pripremljene, kombo liste.
Za početak, napravili smo jednu jednostavnu kombo listu i kreirali proceduru kojom punimo njen sadržaj i definišemo inicijalnu vrednost:
Sub Init()
VBAProject.Sheet1.ComboBox1.AddItem „SVI GRADOVI“
VBAProject.Sheet1.ComboBox1.AddItem „Beograd“
VBAProject.Sheet1.ComboBox1.AddItem „Kragujevac“
VBAProject.Sheet1.ComboBox1.AddItem „Novi Sad“
VBAProject.Sheet1.ComboBox1.AddItem „Subotica“
VBAProject.Sheet1.ComboBox1.AddItem „Vršac“
VBAProject.Sheet1.ComboBox1.ListIndex = 0
End Sub
Zatim pišemo kod koji će se aktivirati nakon što se izvrši promena vrednosti kontrole ComboBox1. Filtriranje se postiže tako što najpre aktiviramo radni list i selektujemo oblast koja treba da se filtrira. Zatim za zadatu oblast i kolonu vršimo specifikaciju vrednosti na osnovu koje se vrši filtriranje. Primenom metoda ShowAllData vrši se poništavanje filtera.
Private Sub ComboBox1_Change()
Dim i As Integer
Dim vrednost As String
i = VBAProject.Sheet1.ComboBox1.ListIndex
ActiveSheet.Cells(3, 1).Select
If i = 0 Then
ActiveSheet.ShowAllData
Else
Select Case i
Case 1
vrednost = „Beograd“
Case 2
vrednost = „Kragujevac“
Case 3
vrednost = „Novi Sad“
Case 4
vrednost = „Subotica“
Case 5
vrednost = „Vršac“
End Select
With Sheet1
.AutoFilterMode = False
.Range(„Partneri“).AutoFilter
.Range(„Partneri“).AutoFilter Field:=4, Criteria1:=vrednost
End With
End If
End Sub