Helpmij.nl
Helpmij.nl
Helpmij.nl

Quote

Pagina 1 van 2 1 2 LaatsteLaatste
Weergeven resultaten 1 tot 20 van 33

Onderwerp: Datum meeschuiven in filter

  1. #1
    Senior Member
    Geregistreerd
    13 november 2013
    Vraag is opgelost

    Datum meeschuiven in filter

    Hallo,

    op mijn werk maken we gebruik van queries, om bepaalde gegevens uit te lezen uit onze database. Op basis van deze gegevens worden vervolgens facturen verstuurd, etc.

    Een van die bestanden geeft een overzicht weer van verzamelde pakbonnen in het magazijn, met daarbij de status en datum van die order. In deze tabel zou ik graag iets inbouwen, waarmee hij automatisch gefilterd wordt op waarden van gisteren en nieuwer. Dit kan natuurlijk handmatig, maar automatisch is mooier. De oudere resultaten moeten echter niet verdwijnen uit de tabel, ze moeten gewoon verborgen worden.

    In de bijlage zit een voorbeeld bestand. Hierin heb ik 2 stappen:
    1. Filteren op magazijnstatus 5
    2. Filteren op order datum, en dan op gisteren en vandaag. In dit voorbeeld is dat dan 21 en 22 augustus. Morgen is dat dan 22 en 23, etc., dus dat zou per dag doorschuiven.

    In Excel zou je zoiets kunnen filteren op =VANDAAG()-1, maar dat werkt in een filter helaas niet.

    In het voorbeeldbestand heb ik een knop aangemaakt, om daar onder water de filter te activeren (VBA). Ik heb daar deze code voor gemaakt (door simpelweg een macro op te nemen):
    ActiveSheet.ListObjects("Tabel2").Range.AutoFilter Field:=3, Criteria1:="5"
    ActiveSheet.ListObjects("Tabel2").Range.AutoFilter Field:=4, Operator:= _
    xlFilterValues, Criteria2:=Array(2, "9/21/2021", 2, "9/22/2021")
    Echter krijg ik een foutmelding nadat hij gefilterd heeft. En de datum staat hier statisch in, dat zou dus iets als '>VANDAAG()-1' moeten worden (maar ik weet niet wat daar de juiste code voor VBA voor is).

    Ik hoop dat mijn bedoeling duidelijk is en dat iemand me verder kan helpen, alvast bedankt!
    Bijgevoegde bestanden Bijgevoegde bestanden

  2. #2
    Mega Senior
    Geregistreerd
    21 januari 2012
    Met een advance filter
    Bijgevoegde bestanden Bijgevoegde bestanden
    mvg Jean-Paul

  3. #3
    Senior Member
    Geregistreerd
    13 november 2013
    Dankjewel! Dat werkt inderdaad prima op die manier, dus is zeker een optie.

    Echter heeft mijn absolute voorkeur om het in dezelfde tabel toe te passen (en dat filter dan dus ook gewoon weer te kunnen wissen). De tabel zal namelijk ook gebruikt worden om af en toe oudere gegevens terug te halen. En ik wil het graag zo simpel mogelijk maken, zonder nog een extra tabel toe te moeten voegen. Kan dat ook?

  4. #4
    Mega Senior
    Geregistreerd
    21 januari 2012
    Dat zal er aan liggen wat je wil ophalen, de gewone filter heeft ook zijn beperkingen
    mvg Jean-Paul

  5. #5
    Giga Honourable Senior Member
    Geregistreerd
    2 maart 2013
    Je kan ook xlFilterInPlace gebruiken in het bestandje in #2

    Code:
     Private Sub CommandButton1_Click()
      ListObjects(1).Range.AdvancedFilter xlFilterInPlace, Cells(1, 27).CurrentRegion
    End Sub
    Je kan een paard naar het water leiden, maar je kan het niet dwingen te drinken.

  6. #6
    Senior Member
    Geregistreerd
    13 november 2013
    Dat lijkt ook wel mooi inderdaad, ik zie dat de regels dan verborgen worden. Hoe krijg ik ze dan weer tevoorschijn, met een extra knop er in bijvoorbeeld?

  7. #7
    Giga Honourable Senior Member
    Geregistreerd
    18 juli 2008
    Die knop staat al in het lint, Menu Gegevens → wissen.
    ____________
    Met vriendelijke groet,
    Harry

    Lag nooit om de keuzes van dien vraauw, bist ter zulf aine van....
    (Grunnegs-Gronings)

  8. #8
    Senior Member
    Geregistreerd
    13 november 2013
    Quote Origineel gepost door HSV Bekijk Bericht
    Die knop staat al in het lint, Menu Gegevens → wissen.
    Ja, dat klopt. Maar in dit geval worden de complete regels verborgen, niet 'weg gefilterd' zeg maar.

  9. #9
    Mega Senior
    Verenigingslid

    Geregistreerd
    27 februari 2016
    Probeer dit eens.
    kijk eens op: http://www.snb-vba.eu/VBA_Autofilter.html voor meer opties.
    Bijgevoegde bestanden Bijgevoegde bestanden
    Laatst aangepast door AD1957 : 23 september 2021 om 11:43
    Met vriendelijke groet,
    Albert

  10. #10
    Senior Member
    Geregistreerd
    13 november 2013
    Bedankt voor het meedenken Albert

    Dat is zeker een optie, maar ik loop tegen 2 dingen aan;
    1. Er komt een aparte popup waar de gewenste status ingevuld moet worden. Het lijkt wel fancy, maar ik zou dan liever 1 knop hebben die filtert en 1 die de hem weer verwijderd zeg maar.
    2. Door die pop up kan er niet meer gewerkt worden in het Excel bestand zelf. Er kan dan bijvoorbeeld geen ordernummer gekopieerd worden.

  11. #11
    Mega Senior
    Verenigingslid

    Geregistreerd
    27 februari 2016
    Zelf ook een beetje meedenken.
    Code:
    Private Sub CommandButton1_Click() 'FILTEREN
    With ActiveSheet.ListObjects("Tabel2").Range
        .AutoFilter
        .AutoFilter 3, 5
        .AutoFilter 4, ">=" & 1 * Date - 1
    End With
    End Sub
    Code:
    Private Sub CommandButton2_Click() 'RESET
    ActiveSheet.ListObjects("Tabel2").Range.AutoFilter
    End Sub
    Met vriendelijke groet,
    Albert

  12. #12
    Senior Member
    Geregistreerd
    13 november 2013
    Quote Origineel gepost door AD1957 Bekijk Bericht
    Zelf ook een beetje meedenken.
    Die zocht ik, je bent geweldig haha. Allemaal bedankt voor de hulp, ik zet een slotje er op.
    Laatst aangepast door jelle87 : 23 september 2021 om 15:07

  13. #13
    Giga Honourable Senior Member
    Geregistreerd
    2 maart 2013
    Het quoten van volledige berichten is niet nodig. Waarom gebruik je geen ToggleButton? Kan je het met 1 knop regelen zonder een Userform.
    Bijgevoegde bestanden Bijgevoegde bestanden
    Je kan een paard naar het water leiden, maar je kan het niet dwingen te drinken.

  14. #14
    Senior Member
    Geregistreerd
    13 november 2013
    Dat is zeker een goede optie! Echter is mijn basiskennis van VBA nog niet goed genoeg om dat er in te krijgen.

    Is deze toggle button ook te gebruiken met het stukje code dat AD1957 had gemaakt? Dan zit het filter namelijk in die code en is er ook geen risico dat collega's die per ongeluk overschrijven bijvoorbeeld.

    Private Sub CommandButton1_Click() 'FILTEREN
    With ActiveSheet.ListObjects("Tabel2").Range
    .AutoFilter
    .AutoFilter 3, 5
    .AutoFilter 4, ">=" & 1 * Date - 1
    End With
    End Sub
    en
    Private Sub CommandButton2_Click() 'RESET
    ActiveSheet.ListObjects("Tabel2").Range.AutoFilter
    End Sub
    Wederom dank voor de hulp

  15. #15
    Mega Senior
    Verenigingslid

    Geregistreerd
    27 februari 2016
    Zo? eigenlijk had je dit zelf wel kunnen bedenken.
    Code:
    Private Sub ToggleButton1_Click()
     With ToggleButton1
      If .Value Then
        ListObjects(1).Range.AutoFilter 3, 5
        ListObjects(1).Range.AutoFilter 4, ">=" & 1 * Date - 1
        .Caption = "Filter uitzetten"
      Else
        ListObjects(1).Range.AutoFilter
        .Caption = "Klik hier om te filteren"
      End If
      .BackColor = IIf(.Value, vbRed, vbGreen)
     End With
    End Sub
    Laatst aangepast door AD1957 : 23 september 2021 om 15:56
    Met vriendelijke groet,
    Albert

  16. #16
    Senior Member
    Geregistreerd
    13 november 2013
    ja, dat bedoel ik inderdaad. Bedankt!

    Nog 1 verzoek haha: de knop verwijderd nu de filter van de tabel (en zet hem weer terug zodra de knop weer ingedrukt wordt). Is het ook mogelijk om het filter te wissen in plaats van verwijderen? Daarmee kan de tabel dan handmatig gefilterd worden (op andere resultaten), maar ook automatisch via die knop.

  17. #17
    Giga Honourable Senior Member
    Geregistreerd
    2 maart 2013
    Dan zet je de filtervoorwaarden toch op een (verborgen) ander blad?
    Bijgevoegde bestanden Bijgevoegde bestanden
    Je kan een paard naar het water leiden, maar je kan het niet dwingen te drinken.

  18. #18
    Mega Senior
    Verenigingslid

    Geregistreerd
    27 februari 2016
    Daarmee kan de tabel dan handmatig gefilterd worden (op andere resultaten)
    Dus waarschijnlijk beter een Userform gebruiken (of zoals jij het noemt een Pop-up)
    Met vriendelijke groet,
    Albert

  19. #19
    Senior Member
    Geregistreerd
    13 november 2013
    Nee, met zo'n Userform is het niet meer mogelijk om de ordernummers te kopiëren en te plakken (in ons boekhoudprogramma bijvoorbeeld). Vandaar dat het mooier zou zijn om de filter alleen te resetten, maar dus niet te verwijderen. Ik weet niet of dat überhaupt mogelijk is?

  20. #20
    Mega Senior
    Verenigingslid

    Geregistreerd
    27 februari 2016
    Dan zet je toch gewoon in eigenschappen van de USerform Showmodal op False
    Met vriendelijke groet,
    Albert

Berichtenregels

  • U mag geen nieuwe vragen starten.
  • U mag niet reageren op berichten.
  • U mag geen bijlagen versturen.
  • U mag uw berichten niet bewerken.
  •  
Helpmij.nl
Helpmij.nl

Helpmij.nl

Regels
Help

Helpmij.nl en business

Partners
Sponsoren