Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Laufzeitfehler 1004 bei Pivottabelle

Forumthread: Laufzeitfehler 1004 bei Pivottabelle

Laufzeitfehler 1004 bei Pivottabelle
14.08.2015 19:34:58
LKro1976
Ich erhalte beim Ausführung dieses Makros immer einen Laufzeitfehler 1004, weil die PivotItems-Eigenschaft des PivotField-Objektes nicht zugeordnet werden kann.
Hintergrund: Ich möchte in einer Pivottabelle bestimmte Einträge sichtbar, andere unsichtbar machen. Das klappt solange mit angehängtem Skript, wenn die Werte z. B. "Ja - Kündigung" in der Quelltabelle vorhanden sind.
Die Quelltabelle hat jedoch manchmal alle die im Skript genannten Werte, an manchen Tagen _
fehlen einige. Dann kommt der Laufzeitfehler. Ich möchte aber eine VBA-Skript haben, dass immer _
funktioniert, unabhängig davon, ob die Werte vorhanden sind oder nicht. So dass für den Fall, _
das sie vorhanden sind, die richtigen Filter Einstellungen gesetzt werden.

Sub Auto_Open()
' Formatierung im Register "Kündigungen (MB)" ausführen
Sheets("Kündigungen (MB)").Select
ActiveSheet.PivotTables("Kündigungen (MB)").PivotCache.Refresh
With ActiveSheet.PivotTables("Kündigungen (MB)").PivotFields("Zielfeldrelevanz")
.PivotItems("Ja - Kündigung").Visible = True
.PivotItems("Ja - KüRü").Visible = True
.PivotItems("Nein - NRHW").Visible = True
.PivotItems("Nein - unwirksame Kündigung").Visible = False
.PivotItems("(blank)").Visible = False
End With
End Sub

Weiß jemand wie ich das hinbekomme? Welche Änderungen muss ich z. B. im Skript vornehmen, wenn "Ja - Kündigung" nicht immer verfügbar ist.
Vorab vielen Dank für die Unterstützung.

Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Laufzeitfehler 1004 bei Pivottabelle
15.08.2015 13:56:58
Luschi
Hallo LKro1976,
mein Vorschlag ist Folgender:

Sub Auto_Open()
Dim wks As Worksheet, pvT As PivotTable, pvI As PivotItem
' Formatierung im Register "Kündigungen (MB)" ausführen
Set wks = Worksheets("Kündigungen (MB)")
wks.Select
Set pvT = wks.PivotTables("Kündigungen (MB)")
With pvT
.PivotCache.Refresh
With .PivotFields("Zielfeldrelevanz")
On Error Resume Next
'Versuchen, ein Objekt zu erstellen
Set pvI = .PivotItems("Ja - Kündigung")
On Error GoTo 0
If Not (pvI Is Nothing) Then
'Pivot-Eintrag existiert
.Visible = True
Else
'Pivot-Eintrag existiert nicht
'also nichts machen
End If
.PivotItems("Ja - KüRü").Visible = True
.PivotItems("Nein - NRHW").Visible = True
.PivotItems("Nein - unwirksame Kündigung").Visible = False
.PivotItems("(blank)").Visible = False
End With
End With
'Objekte zerstören
Set pvI = Nothing
Set pvT = Nothing
Set wks = Nothing
End Sub
Gruß von Luschi
aus klein-Paris
PS: statt der veralteten Routine 'Auto_Open' solltest Du auf 'Private Sub Workbook_Open()' umsteigen, welche sich in 'DieseArbeitsmappe' befinden muß.
Anzeige
;
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige