Autofilters in Excel 2007 en hoger

Autofilter operatoren

Zoals reeds gezegd, Excel 2007 laat o.a. toe om te filteren op kleuren van cellen en celwaarden, iconen, tijdsintervallen en ook verschillende afzonderlijke waarden. Daartoe werd de lijst van beschikbare operatoren van de autofilter uitgebreid. In onderstaande tabel staan de 14 mogelijke waarden van die operator, in alfabetische volgorde:

OperatorWaardeBeschrijving
xlAnd12 voorwaarden moeten beide voldaan zijn
xlBottom10Items4toon de records met de x laagste getallen
xlBottom10Percent6toon de records die de x laagste percent uitmaken
xlFilterAutomaticFontColor13filter op de cellen met automatische kleur voor celwaarden
xlFilterCellColor8filter op de achtergrondkleur
xlFilterDynamic11o.a. filteren op tijdseenheid
xlFilterFontColor9filter op de kleur van de celwaarden
xlFilterIcon10filter op de cellen met een bepaald icoon
xlFilterNoFill12filter op de cellen zonder achtergrondkleur
xlFilterNoIcon14filter op de cellen zonder icoon
xlFilterValues7het filteren op meerdere waarden tegelijk
xlOr2het voldoen aan 1 voorwaarde is voldoende
xlTop10Items3toon de records met de x hoogste getallen
xlTop10Percent5toon de records die de x hoogste percent uitmaken

Vooraleer concrete codeblokjes te presenteren, wil ik nog meegeven hoe je bovenstaande informatie kan vinden. Ofwel zoek je op Microsoft website met de juiste zoektermen. Ofwel gebruik je een variabele:

Eens juist gedeclareerd, kan je de naam van de variabele typen, gevolgd door een = teken en dan zal VBA de mogelijke geldige waarden in een lijstje zetten. Is dit niet het geval, kijk dan of in VBA bij de opties een vinkje staat bij "Auto List Members". Ofwel druk je in VBA op F2 en kom je in de Object Browser terecht. Daar typ je bovenaan de zoekterm:

Geef Excel in als library. Onderaan kan je ook de waarde van de constante terug vinden.

Met een autofilter kunnen we nu ook filteren op de records waarbij de datum in de volgende maand valt (Excel kijkt naar de datum van vandaag om te bepalen wat die volgende maand is):

Sub Autofilter_8()
Range("A1").CurrentRegion.AutoFilter Field:=3, Criteria1:=xlFilterNextMonth, Operator:=xlFilterDynamic
End Sub

Dynamische filtercriteria

We gebruiken met andere woorden xlFilterNextMonth. Vergeet de operator niet xlFilterDynamic, anders werkt het niet. De uitleg waarom dit is, volgt onder de tabel met mogelijke dynamische filtercriteria (geordend per thema):

FiltercriteriumWaardeBeschrijving
xlFilterToday1records met datum van vandaag
xlFilterYesterday2records met datum van gisteren
xlFilterTomorrow3records met datum van morgen
xlFilterThisWeek4records met datum van deze week
xlFilterLastWeek5records met datum van vorige week
xlFilterNextWeek6records met datum van volgende week
xlFilterThisMonth7records met datum van deze maand
xlFilterLastMonth8records met datum van vorige maand
xlFilterNextMonth9records met datum van volgende maand
xlFilterThisQuarter10records met datum van dit kwartaal
xlFilterLastQuarter11records met datum van vorig kwartaal
xlFilterNextQuarter12records met datum van volgend kwartaal
xlFilterThisYear13records met datum van dit jaar
xlFilterLastYear14records met datum van vorig jaar
xlFilterNextYear15records met datum van volgend jaar
xlFilterYearToDate16records van 1 januari dit jaar tot nu
xlFilterAllDatesInPeriodQuarter117records met datum in kwartaal 1 (elk jaar)
xlFilterAllDatesInPeriodQuarter218records met datum in kwartaal 2 (elk jaar)
xlFilterAllDatesInPeriodQuarter319records met datum in kwartaal 3 (elk jaar)
xlFilterAllDatesInPeriodQuarter420records met datum in kwartaal 4 (elk jaar)
xlFilterAllDatesInPeriodJanuary21records met datum in januari (elk jaar)
xlFilterAllDatesInPeriodFebruray22records met datum in februari (elk jaar)
xlFilterAllDatesInPeriodMarch23records met datum in maart (elk jaar)
xlFilterAllDatesInPeriodApril24records met datum in april (elk jaar)
xlFilterAllDatesInPeriodMay25records met datum in mei (elk jaar)
xlFilterAllDatesInPeriodJune26records met datum in juni (elk jaar)
xlFilterAllDatesInPeriodJuly27records met datum in juli (elk jaar)
xlFilterAllDatesInPeriodAugust28records met datum in augustus (elk jaar)
xlFilterAllDatesInPeriodSeptember29records met datum in september (elk jaar)
xlFilterAllDatesInPeriodOctober30records met datum in oktober (elk jaar)
xlFilterAllDatesInPeriodNovember31records met datum in november (elk jaar)
xlFilterAllDatesInPeriodDecember32records met datum in december (elk jaar)
xlFilterAboveAverage33waarden die boven het gemiddelde liggen
xlFilterBelowAverage34waarden die onder het gemiddelde liggen

Zonder twijfel zou ik nog veel andere voorbeelden kunnen geven met de criteria hierboven in de tabel. Maar aangezien dit allemaal variaties zijn op hetzelfde thema, laat ik dit aan de geïnteresseerde lezer over.

Wordt vervolgd…

Op de volgende pagina gaan we verder met het filteren op kleuren.

Over Wim

Wim Gielis is Business Intelligence consultant en Excel expert

Andere links