Avatar billede folle Nybegynder
26. juli 2007 - 15:40 Der er 6 kommentarer

pivottable låser celler. Hvad gør jeg?

Jeg har lavet en makro i Excel der genererer en pivotabel udfra nogle data i et regneark. Når brugeren ændrer nogle data opdaterer makroen automatisk pivotabelen ved at slette den gamle og derefter lave en ny. Men.... Det viser sig at pivottabelen låser de celler hvor den bliver placeret og når jeg så beskytter mit ark kan makroen ikke slette den gamle pivotabel.

Jeg har forsøgt at slette alle data i den gamle pivottabel og derefter indsætte nye, men det er åbenbart ikke muligt at slette data fra en pivottabel.

Er der nogen der har en god idé til hvordan jeg løser dette problem?
Avatar billede oskar Nybegynder
26. juli 2007 - 15:55 #1
Uden at ane om det er muligt: Makroen skal starte med at låse hele regnearket op, derefter gøre det den plejer og til sidst låse regnearket igen.
Avatar billede luffeladefoged Praktikant
29. juli 2007 - 01:06 #2
Eller måske: du finder både de ny og de gamle members (de gamle som er ikke eksisterende i det nye dataset) i en eventuel drop down liste i pivot tabellen (f.eks. for page) før og efter opdatering af data? Så tror jeg jeg har en løsning.
Avatar billede luffeladefoged Praktikant
29. juli 2007 - 01:12 #3
Skulle lige kopiere det eventuelle svar ind, idet jeg svarede en anden for nogen tid siden med den samme (forhåbentlig) problemstilling; at vedkommende blev ved med at se gamle members i pivottabellen:
Har haft dette irreterende problem i en tidligere version af xl - har det ikke i den nuværende 2003 version jeg har. Men jeg kørte nedenstående makro i sheet'et som jeg fik af en kollega - det var kun nødvendigt en gang - og så løstes problemet efter en "data refresh".
Paste koden ind som VBA coding, hit ALT+F11 i din Excel file, go to Insert >Module og paste koden ind.



Sub DeleteMissingItemsAll()
'prevents unused items in non-OLAP PivotTables

'in Excel 2002 and later versions
'If unused items already exist,
  'run this macro then refresh the table
Dim pt As PivotTable
Dim ws As Worksheet

For Each ws In ActiveWorkbook.Worksheets
  For Each pt In ws.PivotTables
    pt.PivotCache.MissingItemsLimit = xlMissingItemsNone
    pt.PivotCache.Refresh
  Next pt
Next ws

End Sub
Avatar billede luffeladefoged Praktikant
14. august 2007 - 10:17 #4
Kunne du bruge noget af det? - eller misforstod jeg?
Hilsen  Leif
Avatar billede folle Nybegynder
14. august 2007 - 10:55 #5
Undskyld. Jeg har været på ferie og har derfor ikke fået svaret.

Problemet blev løst ved at låse arket op ved macro'ens start og låse det igen til slut. Har ikke fået testet ovenstående programstump, men det kan også være en mulig løsning.

Tak for hjælpen.
Avatar billede oskar Nybegynder
14. august 2007 - 17:32 #6
Det var så lidt.
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
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

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