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

Pivot Chart Lauzeit Fehler -21474677259 (80004005)

Pivot Chart Lauzeit Fehler -21474677259 (80004005)
25.10.2014 11:27:56
thuburbo
Hallo Zusammen,
Mein Ziel: Erstellung einer Sub zu Pivot Chart - Erzeugung (code s.u.) die mehrmals aufgerufen werden kann.
In einem Reiter Tabelle1 habe ich die u.g. Daten eingepflegt und als Bereich "Jahr" benannt.
Die Sub funktioniert beim ersten Aufruf Einwandfrei. Jedoch beim wieder wählen von Tabelle1 und der erneuten Ausführung (beim 2 oder 3 Mal) erzeugt Excel
Laufzeitfehler '-21474677259 (80004005)': Die Methode 'SetSourceData' für das Objekt '_Chart' ist fehlgeschlagen.
Der Debugger bleibt bei der Zeile SetSourceData (beim zweiten oder dritten Aufruf) hängen.
Range "Jahr" in Tabelle1:









ItemArtJanuarFebruarMärzAprilMaiJuniJuliAugust
MonatMat12345678
StundenHR534354352167

Private Sub CB_Pivot_Click()
Dim DatenTabelle As Range
Dim i As Integer
Dim MeinPivot As String
Dim ueberschrift As String
Dim MeinReiter As Worksheet
Dim pc As PivotCache
'On Error GoTo Fehler
Set DatenTabelle = ActiveSheet.Range("Jahr")
Set MeinReiter = Worksheets.Add(after:=ActiveSheet)
MeinPivot = MeinReiter.Name & "Pivot"
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
DatenTabelle, Version:=xlPivotTableVersion14).CreatePivotTable _
TableDestination:=MeinReiter.Name & "!R3C1", TableName:=MeinPivot, _
DefaultVersion:=xlPivotTableVersion14
With MeinReiter.PivotTables(MeinPivot).PivotFields("Art")
.Orientation = xlPageField
.Position = 1
End With
With MeinReiter.PivotTables(MeinPivot).PivotFields("Item")
.Orientation = xlRowField
.Position = 1
End With
For i = 2 + 1 To DatenTabelle.Columns.Count
ueberschrift = DatenTabelle.Cells(1, i).Value
MeinReiter.PivotTables(MeinPivot).AddDataField MeinReiter.PivotTables( _
MeinPivot).PivotFields(ueberschrift), "Sum " & ueberschrift, xlSum
Next i
With MeinReiter.PivotTables(MeinPivot).PivotFields("Art")
.ClearAllFilters
For i = 1 To .PivotItems.Count
If StrComp(.PivotItems(1), "HR", vbTextCompare) = 0 Then
.CurrentPage = "HR"
Exit For
End If
Next
End With
Erstelle_Pivot_Grafik MeinReiter.PivotTables(MeinPivot)
Set MeinReiter = Nothing
Set pc = Nothing
Exit Sub
'Fehler:
'    MsgBox "Konnte Pivot Tabelle nicht erstellen", vbCritical, "FEHLER"
End Sub
Sub Erstelle_Pivot_Grafik(PT As PivotTable)  'as chart
Dim MeinDiagramm As Chart
Dim rngChart As Range
DoEvents
Set MeinDiagramm = PT.Parent.Parent.Charts.Add(after:=PT.Parent)
Set rngChart = PT.TableRange1
With MeinDiagramm
        .SetSourceData rngChart
.ChartType = xlAreaStacked
.ShowAxisFieldButtons = False
.ShowValueFieldButtons = False
.PlotBy = xlRows
.Refresh
End With
Set rngChart = Nothing
Set MeinDiagramm = Nothing
End Sub

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Pivot Chart Lauzeit Fehler -21474677259 (80004005)
25.10.2014 11:59:30
Tino
Hallo,
warum ein Fehler auftritt ist mir jetzt auch nicht ersichtlich.
Schalte einfach ein On Error Resume Next davor

On Error Resume Next
With MeinDiagramm
.SetSourceData rngChart
.ChartType = xlAreaStacked
.ShowAxisFieldButtons = False
.ShowValueFieldButtons = False
.PlotBy = xlRows
.Refresh
End With
Gruß Tino

AW: Pivot Chart Lauzeit Fehler -21474677259 (80004005)
25.10.2014 13:29:35
thuburbo
Hallo Tino,
vielen Dank, jedoch das löst meine Fragestellung nicht.
Excel erstellt das Erste Diagramm. Bei der Erstellung des Fehlerhaften nimmt er als Default SourceData die letzte Quelle. Beim Versuch die Quelle zu ändern, die aus Irgendeinen Grund plötzlich geschützt ist, generiert er einen Fehler.
Warum den Fehler beim Dritten Aufruf auftaucht ist mir immer noch ein Rätsel!

Anzeige
evtl. wegen gleicher Quelle Range("Jahr") (offen)
25.10.2014 13:42:00
Tino
Hallo,
ich vermute mal das die gleiche Quelle Range("Jahr") dafür verantwortlich ist.
Gruß Tino

AW: evtl. wegen gleicher Quelle Range("Jahr") (offen)
25.10.2014 14:56:31
thuburbo
Danke Tino,
Ich befürchte, das ist auch nicht die Lösung.
Das Diagramm basiert auf der PivotTable, die auf der PivotCache, der auf "Jahr" basiert.
Beim zweiten Aufruf erstellt die Funktion eine zweite Tabelle. Diese Tabelle basiert auf einem neuem PivotCache (über Property CacheIndex konnte ich es überprüfen).
Wenn du mit dem Debugger schrittweise ausführst, wirst du merken dass Excel als Initialisierung SourceData sich für die vorherige Quelle entscheidet d.h. die erste PivotTabelle wird als Default Quelle gwählt und die Methode SetSourceData wird gesperrt. Meine Meinung nach: diese Sperrung verursacht den Fehler. Weil ich versuche eine geschützte Eigenschaft zu ändern.
Aus meiner Sicht brauche ich einen Art Reset für die Source Quelle zwischen zwei Chart Erstellung. Diese Funktion fehlt mir.

Anzeige
AW: evtl. wegen gleicher Quelle Range("Jahr")
25.10.2014 15:03:56
Tino
Hallo,
wenn ich für den Rangebereich Jahr einen zweiten Namen vergebe zBsp. Jahr1 und
deinen Code erst mit Jahr laufen lasse und danach nochmal mit Jahr1 bekomme ich keinen Fehler.
Aber ist nur Spekulation kenne mich mit Pivot nicht so gut aus.
Ich lass offen!
Gruß Tino

AW: evtl. wegen gleicher Quelle Range("Jahr")
27.10.2014 11:05:46
thuburbo
Guter Hinweis Tino
warum meldet er dann Fehler erst beim dritten aufruf? Es müsste bereits beim Zweiten melden.

AW: evtl. wegen gleicher Quelle Range("Jahr")
27.10.2014 11:06:03
thuburbo
Guter Hinweis Tino
warum meldet er dann Fehler erst beim dritten aufruf? Es müsste bereits beim Zweiten melden.

Anzeige
in meinem Nachbau schon beim zweiten mal oT.
27.10.2014 17:26:30
Tino

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige