Anzeige
Archiv - Navigation
1184to1188
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Pivotcache gleiche Datenquelle - Speicherplatz

Pivotcache gleiche Datenquelle - Speicherplatz
jens
Hallo Excel-Profis,
ich habe eine Datei bei der ich den Namen für den Pivotbereich umbenennen mußte (sonst Doppelnennung bei Zusammenlegung der Dateien).
Nach dem ich alle Datenquellen geändert hatte, war die Datei 5x so groß.
Jetzt wollte ich die Quellen angleichen.
Habe z.B. dieses Makro gefunden:
Sub ALL_PIVOTS_SAME_CACHE()
    Dim wb As Workbook
    Dim vSheet As Worksheet
    Dim vCell As Range
    Dim pvtTable As PivotTable
    Dim pvtCache As PivotCache
    Dim vPivotCache As PivotCache
    Dim pvtField As PivotField
    Dim pvtItem As PivotItem
    Dim i As Integer
    Dim bVisible
    Dim bProtected
    Dim v
    "   PRÜFE MULTIUSER
    "   Protect ist unter freigabemodus nicht möglich
    On Error Resume Next
    If ActiveWorkbook.MultiUserEditing = True Then
        ActiveWorkbook.ExclusiveAccess
    End If
    "INIT
    On Error GoTo 0
    Set wb = ActiveWorkbook
    Set vSheet = ActiveWorkbook.ActiveSheet
    Set vCell = ActiveCell
    "Set pvtTable = vCell.PivotTable
    "Set vPivotCache = pvtTable.PivotCache
    "loop durch Blaetter
    For Each vPivotCache In wb.PivotCaches
      v = wb.PivotCaches.Count
    Next
    "MsgBox "fertig"
    "Exit Sub
    For Each vSheet In ActiveWorkbook.Worksheets
        bVisible = vSheet.Visible
        If bVisible  xlSheetVisible Then vSheet.Visible = xlSheetVisible
        bProtected = vSheet.ProtectContents
        If bProtected  False Then vSheet.Unprotect pwAlt: vSheet.Unprotect pw
        vSheet.Activate
        v = wb.PivotCaches.Count
        For Each pvtTable In vSheet.PivotTables
            pvtTable.PivotCache.OptimizeCache = True
            pvtTable.PivotCache.Connection = vPivotCache.Connection
            pvtTable.PivotCache.Refresh
        Next
        If bProtected  False Then
            vSheet.Protect Password:=pw, Contents:=True, UserInterfaceOnly:=True,  _
AllowFormattingColumns:=True, AllowFormattingRows:=True
            vSheet.EnableOutlining = True
            vSheet.EnableAutoFilter = True
        End If
        If bVisible = False Then vSheet.Visible = bVisible
    Next
    "SCAN PIVOT
    MsgBox "Fertig"
End Sub
Da steigt er bei mir aber total aus und alles ist in VBA rot.
Weiß jemand Rat?
Vielen Dank, Gruß Jens

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Pivotcache gleiche Datenquelle - Speicherplatz
28.10.2010 08:26:00
fcs
Hallo Jens,
Problem1:
Kommentarzeilen fangen in deinem geposteten Code mit "(Anführungszeichen) an korrekt wäre '(Hochkomma)
Problem2:
Das Makro ist zugeschnitten auf Pivottabellen mit externen Datenquellen.
Was für Daten sind bei dir die Quelldaten der Pivotberichte? Exceltabelle innerhalb der Arbeitsmappe, externe Exceldatei oder ander Datenquelle (Datenbank etc.)?
ggf. muss man also das Makro anpassen an die Art der Datenquelle.
Ein einfacher Weg zur Reduktion der Dateigröße wäre, die Optionen der Pivottabellen so einzustellen, dass die Quelldaten der Pivots nicht mit der Datei gespeichert werden und die Pivots beim Öffnen der Datei aktualisiert werden.
Gruß
Franz
Anzeige
AW: Pivotcache gleiche Datenquelle - Speicherplatz
28.10.2010 09:29:17
jens
Hallo Rudi, viellen Dank, hatte gestern ganz spät noch das hier gefunden und das geht:
Sub PivotCachesAngleichen()
Dim ws, ws2, p1, p2
For Each ws In Worksheets
For Each p1 In ws.PivotTables
For Each ws2 In Worksheets
For Each p2 In ws2.PivotTables
If ws.Name  ws2.Name Or p1.Name  p2.Name Then
If p1.SourceData = p2.SourceData Then
p2.CacheIndex = p1.CacheIndex
End If
End If
Next
Next
Next
Next
End Sub

Vielen Dank und noch einen schönen Tag.
Viele Grüße Jens

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige