Skip to the content

Filteren waarden uit verschillende kolommen in een tabel Excel (VBA)

Meerdere kolommen filteren in Excel


Het omzetten van een werkblad naar een tabel en vervolgens filteren van de data is een optie die vrijwel iedere Excel gebruiker met enige regelmaat zal gebruiken. Er zijn hiervoor verschillende mogelijkheden, waaronder de filters in de kolomkoppen van de tabel. Maar zou het niet mooi zijn als je een aantal waarden aan zou kunnen klikken in de Excel sheet waarna de filters ingesteld worden zonder dat je dit per kolomkop hoeft te doen?

 

Het script waarmee dit mogelijk is.

Sub UitvoerFilter()
    'Declareer de variabelen
    Dim objRange As Range
    Dim objTable As ListObject
    Dim objSubSelection As Range
    Dim objfilterCriteria() As String
    Dim objfilterFields() As Integer
    Dim i As Integer
    
    'De selectie mag niet groter zijn dan 1 rij en moet zich in een tabel bevinden
    If Not Selection.ListObject Is Nothing And Selection.Rows.Count = 1 Then
        Set objTable = ActiveSheet.ListObjects(Selection.ListObject.Name)
        
        i = 1
        ReDim objfilterCriteria(1 To Selection.Cells.Count) As String
        ReDim objfilterFields(1 To Selection.Cells.Count) As Integer
        
        'Als er meer kolommen zijn geselecteerd dan...
        
        For Each objSubSelection In Selection.Areas
            For Each objRange In objSubSelection
                objfilterCriteria(i) = objRange.Text
                objfilterFields(i) = objRange.Column - objTable.Range.Cells(1, 1).Column + 1
                i = i + 1
            Next objRange
        Next objSubSelection
        
        With objTable.Range
            For i = 1 To UBound(objfilterCriteria)
                .AutoFilter Field:=objfilterFields(i), Criteria1:=objfilterCriteria(i)
            Next i
        End With
        Set objTable = Nothing
    End If
End Sub

 

Vervolgens hebben we de functie nodig die de filters verwijdert.

Sub FilterLeegMaken()
    On Error Resume Next
    ActiveSheet.ShowAllData
End Sub

Het filteren in Excel VBA uitgelegd

Eerst wordt er gecontroleerd of er cellen zijn geselecteerd en of deze cellen zich in een tabel bevinden. Vervolgens lopen we door de filtercriteria heen en plaatsen de filters in de juiste kolommen van de tabel.

excel voorbeeld

Download hier het voorbeeld Excel bestand

Download - File size: 56KB

Incidenten registratie

In iedere organisatie worden fouten gemaakt en vinden incidenten plaats. Om hier inzicht in te krijgen en de kans op herhaling te voorkomen, is het van belang incidenten op de juiste manier te registreren. Bekijk de voordelen van ons incidenten registratiesysteem.

Incidenten registratie

"Wie op zoek is naar een teamplayer, een man van zijn woord en een uitmuntende programmeur, dan kan ik Reinder zeker aanbevelen. Reinder bedankt en tot de volgende uitdaging."

Marijn Snoek - Fleetaccess