• 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.

macro datumfilter o.b.v. datums variabel in te geven

Status
Niet open voor verdere reacties.

radar

Gebruiker
Lid geworden
13 jan 2006
Berichten
242
Heb een bestand met o.a velden begin- en einddatum, welke ik zou willen filteren o.b.v. een aan te passen referte periode.
M.a.w. de criteria voor de filter zijn twee datumvelden elders in spreadsheet.
De macro op basis van opname handelingen heeft hardcoded data in de macro; ik ben op zoek naar macro met verwijzing naar genoemde datavelden als criterium.


Heb in vereenvoudigde vorm een bestandje als bijlage toegevoegd, met macro op basis van opname handelingen via recorder.
Bekijk bijlage Datum filter.xlsm
 
Probeer het eens zo:
Code:
ActiveSheet.Range("$A$3:$G$9").AutoFilter Field:=4, Criteria1:="<" & N2

In de andere gebruik je dan uiteraard L2.
 
Laatst bewerkt:
Waar ben ik de fout in gegaan ?

Dat kan ik ook zijn geweest ;)
Ik zal vanavond thuis eens kijken als iemand anders me niet voor is.
 
Code:
Sub M_snb()
    With ActiveSheet.Range("$A$3:$G$9")
        .AutoFilter 4, ">=" & 1 * Range("L2")
        .AutoFilter 5, "<=" & 1 * Range("N2")
    End With
End Sub

Verander L2 in bijv. 01-01-2014
 
Laatst bewerkt:
SNB,

Dank voor je inbreng, doch helaas hetzelfde resultaat..
 
omdat geen van je gegevens aan beide criteria voldoet.
Je hebt L2 niet veranderd zoals ik heb voorgesteld.
 
SNB,

Het resultaat van de filter staat in de bijlage van mijn eerste post; deze regels voldoen m.i. aan de criteria.
Alleen was dit zoals aangegeven op basis van "hard-coded" ingegeven datum in filter zelf.
Nou kan ik datum wel aanpassen, maar filter moet het met elke datum goed doen...toch, dus ook met de aangegeven criteria.
 
Ook met de hard-coded datums in de functie werkt het niet. De fout die je maakt is dat je vanuit VBA altijd moet werken met de US datum notatie. 1-8-2014 is in VBA dus niet 1 augustus maar 8 januari.

Doe het eens zo:
Code:
ActiveSheet.Range("$A$3:$G$9").AutoFilter Field:=4, Criteria1:="<" & Format(Range("N2"), "mm-dd-yyyy") _
    , Operator:=xlAnd
ActiveSheet.Range("$A$3:$G$9").AutoFilter Field:=5, Criteria1:=">" & Format(Range("L2"), "mm-dd-yyyy") _
    , Operator:=xlOr, Criteria2:="="


Dezelfde fout maakte ik dus in #2 ;)
 
Laatst bewerkt:
Edmoor,




Macro doet, op eerste gezicht, nu wel wat ik graag wilde.
Daarvoor en überhaupt voor de geboden hulp, los van resultaat, dank ! :thumb:
Ga nog wat experimenteren en daarna dit uitproberen in origineel bestand.
Morgen op kantoor dus.
Daarna meld ik me nog eens.

Maar...
Kan me iets voorstellen bij je redenatie, doch als ik kijk naar de filter in het eerste bericht van mij is regel 7 eruit gefilterd omdat datum als 1-8-2014 wordt gelezen en niet als 8 jan 2014....toch ?


Hoe dan ook, had ik natuurlijk al eerder moeten doen, dank voor de geboden hulp en naar ik hoop juiste oplossing voor wat ik in bronbestand wil
bewerkstelligen.

Ik
 
Je redenatie klopt :)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan