Avatar billede TrinoJ. Seniormester
07. august 2023 - 10:40 Der er 3 kommentarer og
1 løsning

Filtrering af dato i Pivottabel driller

Hej,

Jeg har en pivottabel jeg gerne vil filtrere ud fra to datoer. De to datoer har jeg skrevet i B1 og B2. Men den forsøger at bytte rundt på dage og måneder, når jeg kører nedenstående kode. Nogen der kan hjælpe?

Sub FilterByDate()

If Range("B1").Value = "" Then
MsgBox ("Please Enter a Valid Start Date")
Exit Sub
End If

If Range("B2").Value = "" Then
MsgBox ("Please Enter a Valid End Date")
Exit Sub
End If

With ActiveSheet.PivotTables("Pivottabel4").PivotFields( _
        "[Header].[Date].[Date]")
.ClearAllFilters
.PivotFilters.Add Type:=xlDateBetween, Value1:=Range("B1").Value, Value2:=Range("B2").Value
End With

End Sub
Avatar billede kim1a Ekspert
07. august 2023 - 21:44 #1
Det er sikkert noget med amerikansk vs europæisk datoformat. Et trick kan være at sætte B1 og B2 som variable der skal være date og så styre det via "DDMMYYYY" f.eks.
Avatar billede TrinoJ. Seniormester
08. august 2023 - 08:48 #2
Hej Kim1a,

Tror du har helt ret i, at det skyldes amerikansk / europæisk datoformat. Kan du beskrive mere præcist hvad det er jeg skal gøre?

PFT
Avatar billede kim1a Ekspert
08. august 2023 - 10:29 #3
Sådan lidt utestet:

Sub FilterByDate()

Dim startdato, slutdato as date

If Range("B1").Value = "" Then
MsgBox ("Please Enter a Valid Start Date")
Exit Sub
End If

startdato = range("B1")

If Range("B2").Value = "" Then
MsgBox ("Please Enter a Valid End Date")
Exit Sub
End If

slutdato = range("B2)

With ActiveSheet.PivotTables("Pivottabel4").PivotFields( _
        "[Header].[Date].[Date]")
.ClearAllFilters
.PivotFilters.Add Type:=xlDateBetween, Value1:=format(startdato,"ddmmyyyy", Value2:=format(slutdato,"ddmmyyyy")
End With

End Sub

Så kan du lege lidt rundt med hvordan formatet skal være for at den sorterer korrekt vil jeg tro.

I mine amatørprogrammør-øjne er det altid nemmere at bruge variable hvor der indsættes værdi fra input (celle, inputbox etc), fremfor at tage direkte fra cellen i koden - både fordi du kan styre hvordan input forventes at se ud (integer, double, long, date etc), men også fordi det ofte er med til at gør koden nemmere at tilgå/læse.
Avatar billede TrinoJ. Seniormester
10. august 2023 - 10:44 #4
Tak Kim1a,

Det virker perfekt :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester