Avatar billede danjo Novice
27. juni 2010 - 17:00 Der er 7 kommentarer og
1 løsning

VBA til ændring af reportfilter i flere pivottabeller over flere ark

jeg har flere ark i excel bestående af flere pivottabeller hver, hvor data hentes fra et data ark i samme mappe.

På et ark indtaster jeg data, som arkiveres og gemmes på data arket, som derefter er fordelt ud på 8 grupper(8 forskellige ark), hvor forskellige pivottabeller fremviser forskellige parametre.. Det jeg ønsker er at kunne skifte alle reportfiltre på alle pivottabeller til næste måned på en gang.
Der findes en samlet oversigt, hvor jeg har et felt der angiver hvilken måned det drejer sig om.. Kan VBA ved hjælp af dette felt skifte alle reportfiltre til næste måned..?

Håber det er til at forstå..
Anvender excel 2007.
Avatar billede supertekst Ekspert
27. juni 2010 - 18:09 #1
Det skulle kunne lade sig gøre. Er der mulighed for at sende en kopi af filen - @-adresse under profil.
Avatar billede danjo Novice
27. juni 2010 - 20:31 #2
desværre.. fortrolige oplysninger..
Avatar billede supertekst Ekspert
27. juni 2010 - 20:48 #3
Så kunne alternativet være en model af "virkeligheden"
Avatar billede danjo Novice
27. juni 2010 - 21:02 #4
Ja det er rigtigt.. men det vil tage lidt tid at lave..Jeg skal forsøge.. men der går nok lidt tid inden den er klar.
Avatar billede supertekst Ekspert
27. juni 2010 - 23:14 #5
Ok..
Avatar billede supertekst Ekspert
28. juni 2010 - 09:05 #6
Vent blot med at konstruere modellen. Vi prøver i første omgang uden.
Avatar billede supertekst Ekspert
03. juli 2010 - 13:42 #7
Const månedsFelt = "Måned"                          'evt. justeres
Rem Rapport-måned skiftes - månedsforkortelse anvendes: jan feb mar...
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$B$2" Then                '<--- månedsforkortelse
        findPivot Target
    End If
   
    MsgBox ("Rapportmåned er skiftet")
End Sub
Sub findPivot(måned)
Dim sh As Worksheet, antal As Byte, pt As PivotTable
    antal = 0
    For Each sh In ActiveWorkbook.Sheets
        sh.Select
        For Each pt In ActiveSheet.PivotTables
            indstilPivot måned, pt.Name
        Next pt
    Next sh
End Sub
Private Sub indstilPivot(måned, pivotNavn)
    With ActiveSheet.PivotTables(pivotNavn).PivotFields(månedsFelt)
        For Each m In .PivotItems
            If LCase(m.Name) = måned Then
                m.Visible = True
            Else
                m.Visible = False
            End If
        Next
    End With
End Sub
Avatar billede supertekst Ekspert
16. august 2010 - 09:30 #8
Noget nyt?
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

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