07. august 2023 - 10:40Der 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
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.
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.
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.