Autofilters in Excel 2007 en hoger
- 16/10/2016
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:
Operator | Waarde | Beschrijving |
xlAnd | 1 | 2 voorwaarden moeten beide voldaan zijn |
xlBottom10Items | 4 | toon de records met de x laagste getallen |
xlBottom10Percent | 6 | toon de records die de x laagste percent uitmaken |
xlFilterAutomaticFontColor | 13 | filter op de cellen met automatische kleur voor celwaarden |
xlFilterCellColor | 8 | filter op de achtergrondkleur |
xlFilterDynamic | 11 | o.a. filteren op tijdseenheid |
xlFilterFontColor | 9 | filter op de kleur van de celwaarden |
xlFilterIcon | 10 | filter op de cellen met een bepaald icoon |
xlFilterNoFill | 12 | filter op de cellen zonder achtergrondkleur |
xlFilterNoIcon | 14 | filter op de cellen zonder icoon |
xlFilterValues | 7 | het filteren op meerdere waarden tegelijk |
xlOr | 2 | het voldoen aan 1 voorwaarde is voldoende |
xlTop10Items | 3 | toon de records met de x hoogste getallen |
xlTop10Percent | 5 | toon 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:=xlFilterDynamicEnd 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):
Filtercriterium | Waarde | Beschrijving |
xlFilterToday | 1 | records met datum van vandaag |
xlFilterYesterday | 2 | records met datum van gisteren |
xlFilterTomorrow | 3 | records met datum van morgen |
xlFilterThisWeek | 4 | records met datum van deze week |
xlFilterLastWeek | 5 | records met datum van vorige week |
xlFilterNextWeek | 6 | records met datum van volgende week |
xlFilterThisMonth | 7 | records met datum van deze maand |
xlFilterLastMonth | 8 | records met datum van vorige maand |
xlFilterNextMonth | 9 | records met datum van volgende maand |
xlFilterThisQuarter | 10 | records met datum van dit kwartaal |
xlFilterLastQuarter | 11 | records met datum van vorig kwartaal |
xlFilterNextQuarter | 12 | records met datum van volgend kwartaal |
xlFilterThisYear | 13 | records met datum van dit jaar |
xlFilterLastYear | 14 | records met datum van vorig jaar |
xlFilterNextYear | 15 | records met datum van volgend jaar |
xlFilterYearToDate | 16 | records van 1 januari dit jaar tot nu |
xlFilterAllDatesInPeriodQuarter1 | 17 | records met datum in kwartaal 1 (elk jaar) |
xlFilterAllDatesInPeriodQuarter2 | 18 | records met datum in kwartaal 2 (elk jaar) |
xlFilterAllDatesInPeriodQuarter3 | 19 | records met datum in kwartaal 3 (elk jaar) |
xlFilterAllDatesInPeriodQuarter4 | 20 | records met datum in kwartaal 4 (elk jaar) |
xlFilterAllDatesInPeriodJanuary | 21 | records met datum in januari (elk jaar) |
xlFilterAllDatesInPeriodFebruray | 22 | records met datum in februari (elk jaar) |
xlFilterAllDatesInPeriodMarch | 23 | records met datum in maart (elk jaar) |
xlFilterAllDatesInPeriodApril | 24 | records met datum in april (elk jaar) |
xlFilterAllDatesInPeriodMay | 25 | records met datum in mei (elk jaar) |
xlFilterAllDatesInPeriodJune | 26 | records met datum in juni (elk jaar) |
xlFilterAllDatesInPeriodJuly | 27 | records met datum in juli (elk jaar) |
xlFilterAllDatesInPeriodAugust | 28 | records met datum in augustus (elk jaar) |
xlFilterAllDatesInPeriodSeptember | 29 | records met datum in september (elk jaar) |
xlFilterAllDatesInPeriodOctober | 30 | records met datum in oktober (elk jaar) |
xlFilterAllDatesInPeriodNovember | 31 | records met datum in november (elk jaar) |
xlFilterAllDatesInPeriodDecember | 32 | records met datum in december (elk jaar) |
xlFilterAboveAverage | 33 | waarden die boven het gemiddelde liggen |
xlFilterBelowAverage | 34 | waarden 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.