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

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.

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

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige