Avatar billede brilleabe Nybegynder
29. december 2003 - 18:17 Der er 10 kommentarer og
1 løsning

opdater lister i pivot tabel

Jeg har en pivot tabel og mit problem er at der i 'drop down' listerne er værdier som ikke længere er i data området. Jeg har prøvet at opdatere tabellen, men det hjælper ikke.

Nogen bud?
Avatar billede bak Forsker
29. december 2003 - 19:44 #1
Prøv at lægge et nyt felt ind eller trække et ud, lav så en opdatering, og sæt feltet ind igen (eller træk det ud). pivottabellen skal altså ændres, opdateres og ændres tilbage
Avatar billede brilleabe Nybegynder
29. december 2003 - 19:47 #2
Det har jeg prøvet  -  det hjælper desværre ikke. Jeg har også prøvet at lave en ny pivot som naturligvis er helt ok. Problemet er bare at jeg har lavet en masse sekundære beregninger i min tabel så jeg vil gerne undgå at skulle lave en ny pivot.
Avatar billede brilleabe Nybegynder
29. december 2003 - 20:57 #3
(og så vil jeg iøvrigt gerne vide hvorfor arket ter sig)
Avatar billede faithless Praktikant
29. december 2003 - 22:46 #4
Jeg har været heldig at fjerne det på følgende måde, men det virker ikke hver gang.
Træk drop down menuen ned som række info. Højre klik på tabellen og vælg tabel options, fjern flueben i save data with table layout. Gem pivoten og se om de ekstra oplysninger er væk.
Avatar billede bak Forsker
31. december 2003 - 02:02 #5
Drømte denne makro op. Den fjerner alle de værdier der ikke længere findes i dataområdet. Husk at refreshe først.

Sub CleanPivotItem()
Dim PT As PivotTable
Dim PF As PivotField
Dim PI As PivotItem

For Each PT In ActiveSheet.PivotTables
    For Each PF In PT.PivotFields
        For Each PI In PF.PivotItems
            If PI.RecordCount = 0 And PI.IsCalculated = False Then PI.Delete
        Next PI
    Next PF
Next PT

End Sub
Avatar billede brilleabe Nybegynder
31. december 2003 - 15:04 #6
tester lige..
Avatar billede brilleabe Nybegynder
31. december 2003 - 15:06 #7
Den fejler ved: PI.Delete

Jeg har lagt den i et modul for sig selv.
Avatar billede bak Forsker
01. januar 2004 - 20:16 #8
Du får den lige i forbedret ugave MED fejlhåndtering.

Sub CleanPivotItems()

    Dim pt As PivotTable, pf As PivotField, pi As PivotItem
    Dim booShowMsg As Boolean, mbxResult As VbMsgBoxResult
   
    booShowMsg = True
    On Error GoTo ErrorHandler
   
    For Each pt In ActiveSheet.PivotTables
        For Each pf In pt.PivotFields
            For Each pi In pf.PivotItems
                If pi.RecordCount = 0 And pi.IsCalculated = False Then pi.Delete
            Next pi
        Next pf
    Next pt
    Set pi = Nothing
    Set pf = Nothing
    Set pt = Nothing
    Exit Sub

ErrorHandler:

    If booShowMsg Then
        mbxResult = MsgBox("Macro kunne ikke slette et emne." & vbCr & _
                          "En grund kunne være at at den engang har været en del af en gruppering, eller at det (tom) " & _
                          vbCr & vbCr & "Click [CANCEL] for at undgå yderligere fejlmeddelelser.", _
                            vbExclamation + vbOKCancel, "Fejl ved sletning")
        booShowMsg = (mbxResult = vbOK)
    End If
    Resume Next
End Sub
Avatar billede faithless Praktikant
03. januar 2004 - 13:41 #9
Det er sku for lækkert bak, takker også herfra (c;
Avatar billede brilleabe Nybegynder
03. januar 2004 - 13:44 #10
Jeg er overbevist om at din kode kan fjerne alle de værdier der ikke længere findes i dataområdet, men men

Det virker stadig ikke hos mig. Jeg får fejl hver eneste gang.

Jeg ender sgu' nok med at lave en ny pivot...(æv).
Avatar billede brilleabe Nybegynder
11. januar 2004 - 14:30 #11
Er det muligt at vælge et interval? (Jeg har ca 800-1000 tal i den aktuelle kolonne - og jeg vil gerne kunne vælge f.eks alt mellem 200 og 600)(alternativt skal jeg fjerne et par hundrede flueben hver gang...)

  With ActiveSheet.PivotTables("PivotTable1").PivotFields("Bat")
        .PivotItems("3,8932440972203").Visible = False
        .PivotItems("4,8932440972203").Visible = False
        .PivotItems("5,8932440972203").Visible = False
        .PivotItems("6,8932440972203").Visible = False
        .PivotItems("7,8932440972203").Visible = False
        .PivotItems("8,8932440972203").Visible = False
    End With
End Sub

sådan ser min kode ud nu - men tallene ændre sig jo hele tiden - derfor tænkte jeg på om man kunne bruge et interval i ovenstående kode.
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
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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