29. december 2003 - 18:17Der 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.
Støv, fibre og metalliske partikler kan påvirke både uptime, levetid og driftssikkerhed. Derfor arbejder flere datacentre systematisk med contamination control.
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
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.
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.
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
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
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.
Synes godt om
Ny brugerNybegynder
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.