Filteren op geselecteerde cellen

17 november 2014 | onderwerpen: excel, vba, visual basic, data-analyse

Excel heeft met de filter-functie een handige tool. Maar filteren op één of meerdere waarden vraagt bij een groot bestand met veel verschillende waarden om veel handelingen:

  1. activeren filter-tool
  2. uitvinken van ‘Alles selecteren’
  3. aanvinken van de juiste items na zoeken en scrollen

Dat kan sneller!

In plaats van zoeken naar items die wilt filteren in een soms lange lijst, is het makkelijker en sneller als je kunt filteren op de cellen die je in je werkblad selecteert. Dat kan er één zijn, maar ook meerdere tegelijk. Met deze tool kan dat. Zowel voor tekstkolommen als voor getalkolommen. En ook na aanvullen van de tabel met nieuwe gegevens.

Video: Filteren op inhoud geselecteerde cellen
Klik voor vergroting
Filteren op geselecteerde cellen
 
 
Private Sub FilterButton_Click()
Application.ScreenUpdating = False
Dim r As Long, f As Long, veld As Byte
Dim SingleCell As Excel.Range
Dim ar As String, st As String, v As String, bereik As String
'geselecteerde cellen opnemen in array
For Each SingleCell In Selection.Cells
v = SingleCell.Text 'gebruik Text i.p.v. Value voor de getallen
st = st & v & "-"
Next
st = Mid(st, 1, Len(st) - 1)
Arr1 = Split(st, "-")
'selecteren van de tabel op het werkblad
bereik = Range("tbl.naam").Value
veld = ActiveCell.Column - (Range(bereik).Column - 1) 'kolomnummer binnen de tabel
r = Range(bereik).Rows.Count 'aantal rijen van de tabel
f = Range(bereik).SpecialCells(xlCellTypeVisible).Rows.Count 'aantal van de zichtbare rijen van de tabel
'check of de cel binnen de tabel valt
If r > f Then
ActiveSheet.Range(bereik).AutoFilter
Else
If Not Intersect(ActiveCell, Range(bereik)) Is Nothing Then
ActiveSheet.ListObjects(bereik).Range.AutoFilter Field:=veld, Criteria1:=Arr1, Operator:=xlFilterValues
Else
MsgBox "Selecteer cellen in de tabel", vbExclamation, "ExcelMeester | Jeroen Neele"
End If
End If
End Sub