• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Afgelopen jaar filteren

Status
Niet open voor verdere reacties.

Meaurk

Gebruiker
Lid geworden
29 jun 2012
Berichten
146
Hallo!

Ik probeer in een Excel document alle regels van het afgelopen jaar te filteren. Dit kun je natuurlijk handmatig doen door de afgelopen 12 maanden te selecteren in het filter menu. Echter vroeg ik mij af of dit ook automatisch mogelijk is.

Info:
In kolom A staan alle datums. Nadat deze rijen gefilterd zijn, worden deze naar een ander blad gekopieerd.


Alvast bedankt!
 
Dat hangt ervan af wat jij met automatisch bedoelt, en wat er moet gebeuren met de gefilterde data.
Met VBA is dit simpel op te lossen door voor elke maand een filter toe te passen en de gevonden resultaten telkens naar een nieuw tabblad per maand te kopieëren.
Je zal dus even moeten verduidelijken wat je juist wil dat er gebeurt.
 
Hoi WB,

In een overzicht staan allerlei gegevens van de afgelopen twee jaar. De gegevens van het afgelopen jaar (dus vandaag -12 maanden) moeten gekopieerd worden naar een tweede blad welke daarna uitgeprint kan worden.
Je kunt handmatig de gegevens selecteren en/of filteren van het afgelopen jaar. Juist deze stap zou ik graag automatisch willen zien (dus wanneer je bijvoorbeeld een macro start).

Is het zo wat duidelijker?
 
Meaurk u zou kunnen proberen:

ActiveSheet.Range("$A$1:$K$2425").AutoFilter Field:=1, Criteria1:= _
">=" + Format(Now() - 730, "dd-mm-yyyy"), Operator:=xlAnd, Criteria2:="<=" + Format(Now() - 365, "dd-mm-yyyy")

MsgBox "Vandaaag is het: " & Format(Now(), "dd-mm-yyyy")
 
Hoi keb,

Na wat controle doet de macro precies wat ik bedoel, echter moet ik de filter in de betreffende kolom eenmaal selecteren om de filtering af te ronden. Als ik dit niet doe, zijn alle regels weggefilterd. Hoe kan dit?

Alvast bedankt!
 
Dag Meaurk,

Het is me helaas niet duidelijk wat je bedoelt. Bedoel je filteropheffen, dan "ActiveSheet.Range("$A$1:$K$2425").AutoFilter Field:=1"
Zo nee, kun je dan een voorbeeldbestandje plaatsen en jouw probleem nader omschrijven?
 
Dit (Format(Now() - 730, "dd-mm-yyyy")) kan natuurlijk nooit een zuivere datum opleveren, want je gaat geheid de teil in bij schrikkeljaren. Dus datums uitrekenen doe je gewoon met de juiste functie.
Code:
ActiveSheet.Range("$A$1:$K$2425").AutoFilter Field:=1, Criteria1:= ">=" + DateAdd("yyyy", -2, Date), Operator:=xlAnd, Criteria2:="<=" + DateAdd("yyyy", -1, Date)
 
@Octafish, Met jouw code krijg ik de volgende melding "Error mismatch".

@Keb, als ik de macro uitvoer krijg ik geen foutmeldingen. Echter als ik dan naar het blad ga waar de filtering plaats heeft gevonden, zijn alle regels verdwenen. De kolom waar de datum filtering plaats moet vinden is gefilterd op de goede waardes, echter zie ik de bijbehorende regels niet verschijnen, totdat ik handmatig de filtering aanklik en weer sluit. Hij wordt dus denk ik ergens in tegengehouden.

Zie bijlage voor voorbeeld:
Bekijk bijlage Voorbeeld macro.xlsm

Mark
 
alle regels van het afgelopen jaar te filteren.

Voeg aan je tabel een rekenkolom Jaar toe met formule =Jaar( [@Datum] ) en filter op die kolom.
Maak eerst van je tabel een excel tabel (Invoegen > Tabel).
Gebruik een (time) slicer om via de userinterface te filteren (2013).
 
Hoi Picxel,

Dit werkt alleen als je een volledig jaar wilt filteren, echter als ik in juli 2016 het afgelopen jaar wil filteren zal dit jaar van 07-2015 tot 07-2016 lopen, waardoor alleen het jaar niet voldoende is.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan