Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1404to1408
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

Pivottabellen unterscheiden

Pivottabellen unterscheiden
03.02.2015 12:55:44
Hendrik
Hallo zusammen,
ich habe ein Makro, welches fehlende Elemente aller Pivottabellen einer Arbeitsmappe findet und entfernt. Das funktioniert bei konventionellen, auf Daten in der eigenen Mappe referenzierende, Pivottabellen prima. Jedoch nicht, wenn die Pivottabelle auf eine externe Quelle (hier: einen Analysis Service Würfel) zeigt.
Wie kann ich solche Pivottabellen von den anderen unterscheiden und somit meinen Code anpassen?

For Each ws In ActiveWorkbook.Worksheets
lngWsZaehler = lngWsZaehler + 1
For Each pt In ws.PivotTables
lngPtZaehler = lngPtZaehler + 1
pt.RefreshTable
If pt.PivotCache.MissingItemsLimit  xlMissingItemsNone Then
lngAktualisiertZaehler = lngAktualisiertZaehler + 1
pt.PivotCache.MissingItemsLimit = xlMissingItemsNone
End If
Next
Next

Danke und Grüße
Hendrik

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

Betreff
Datum
Anwender
Anzeige
AW: Pivottabellen unterscheiden
04.02.2015 08:27:23
fcs
Hallo Hendrik,
man kann Prüfen, ob die Datenquelle extern ist oder auch versuchen die Datenquelle auszuwerten.
Gruß
Franz
Sub aaTest()
Dim ws As Worksheet, lngWsZaehler, lngPtZaehler, lngAktualisiertZaehler
Dim pt As PivotTable
Dim varSource
Dim ptCache As PivotCache
On Error GoTo Fehler
For Each ws In ActiveWorkbook.Worksheets
lngWsZaehler = lngWsZaehler + 1
Debug.Print vbLf & "############ Blatt-Name: " & ws.Name
For Each pt In ws.PivotTables
Set ptCache = pt.PivotCache
varSource = ptCache.SourceData      'Fehler bei externen Quellen
varSource = ptCache.SourceDataFile  'Fehler wenn Quelle nicht Excel-Zellbereich
Debug.Print "Pivottabelle-Name: " & pt.Name & "  - Quelle: " & varSource
If ptCache.SourceType = xlExternal Then
'Datenquelle
Else
'                If InStr(varSource, Application.PathSeparator) > 0 Then 'evtl. zusätzlich  _
erforderlich
lngPtZaehler = lngPtZaehler + 1
pt.RefreshTable
If pt.PivotCache.MissingItemsLimit  xlMissingItemsNone Then
lngAktualisiertZaehler = lngAktualisiertZaehler + 1
pt.PivotCache.MissingItemsLimit = xlMissingItemsNone
End If
'                End If
End If
Next pt
Next ws
Fehler:
With Err
Select Case .Number
Case 0 'alles OK
Case 1004 'Fehler tritt ggf. auf, wenn DataSource oder DataSOurceFile keine Daten  _
enthält
Resume Next
Case Else
MsgBox "Fehler-Nr.: " & .Number & vbLf & .Description
End Select
End With
End Sub

Anzeige
AW: Pivottabellen unterscheiden
04.02.2015 15:47:54
Hendrik
Hallo Franz, vielen Dank.
ptCache.SourceType = xlExternal
bringt es.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige