VBA AutoFilter

Nov teden, nov problem oziroma nov izziv. Ko ljudi naučis uporabljat Filter (Razvrsti in filtriraj -> Filter), začnejo takoj razgljabljat, da je v nekaterih tabelah preveč podatkov, preveč klikanja, preveč napak. Skratka vsega je preveč. Vse to je pripeljajo da ideje o preprostem Obrazcu (UserForm), kjer bi uporabnik vnesel pogoje za filtriranje, pritisnik OK in stvar bi delovala.

Najprej potrebujemo sestavine:
– 1x UserForm (UserForm1)
– 2x TextBox (txtFrakcija in txtNaselje)
– 2x Label (Frakcija in Naselje)
– 1x Button (cmdIsci)

Naredimo obrazec


Ko smo z izgledom obrazca približno zadovoljni, dvakrat kliknemo na gum išči in odpre se nam urejevalnik kode. Vnesemo nekaj preprostih vrstic:

Private Sub cmdIsci_Click()
    Selection.AutoFilter
        ActiveSheet.Range(“$A$1:$E$631″).AutoFilter Field:=2, Criteria1:=”*” & txtFrakcija.Value & “*”
        ActiveSheet.Range(“$A$1:$E$631″).AutoFilter Field:=4, Criteria1:=”*” & txtNaselje.Value & “*”
End Sub

Še kratka razlaga. Na aktivnem listu, kjer imamo seveda vklopljen Filter, lahko filtriramo podatke po 2. in 4. stolpcu. Poleg tega sem dodal še “*” na začetek in konec.

Na excelov delovni list sem dodal še gumb za zagon obrazca in ga povezal z:

Sub odpri()
    UserForm1.Show
End Sub

Zanimivo je, da lahko uporabimo txtFrakcija.Value ali txtFrakcija.Text. V obeh primerih stvar deluje.

Dodaj odgovor

Vaš e-naslov ne bo objavljen. * označuje zahtevana polja

This site uses Akismet to reduce spam. Learn how your comment data is processed.