Discussion:
Pivot Fehler bei pvt.ColumnRange.Row
(zu alt für eine Antwort)
Tobias Ehlert
2006-10-17 21:08:32 UTC
Permalink
Hallo NG,

ich habe eine Excel Tabelle mit ca. 8 Sheets die jew. eine Pivot Tabelle
enthalten.

Diese formatiere ich nun allesamt per Script über das Event
"Workbook_SheetPivotTableUpdate(ByVal Sh As Object, ByVal Target As
PivotTable)" nach einer gewissen Logik.

Das Ganze funktioniert ziemlich klasse, wenn nicht sporadisch und nicht
immer in der gleichen Weise reproduzierbar nach mehreren Aktualisierungen
folgender Fehler erscheint:

"pvt.ColumnRange.Row - Die ColumnRange Eigenschaft des Pivot Objektes kann
nicht zugeordnet werden."

Dabei ist pvt wie folgt zugewiesen worden
Set pvt = ActiveSheet.PivotTables(1)

Ich komme dem Fehler einfach nicht auf die Spur. Für mich scheint es so,
als wäre das Ganze für Excel nach einigen Aktualisierungen einfach zu viel
und kann die Variable nicht mehr zuordnen.
Wenn ich die Tabelle nach Auftreten des Fehlers so abspeichere, den Excel
Prozess beende (es hängt dann so ziemlich komplett) und die Datei erneut
öffne um die PivotTabelle zu aktualiseren, erscheint der Fehler nicht mehr.
Erst nach wiederrum 10-20 Versuchen tritt der Fehler erneut auf.

Hat jemand eine Idee was ich hier noch anstellen könnte ?!
Danke für jede Art der Hilfe....

Tobi
unknown
2006-10-18 09:49:29 UTC
Permalink
Hallo Tobias,
dies kann eventuell an der Art der Referenzierung liegen. Benutze hier
nicht ActiveSheet, sondern referenziere genau das Tabellenblatt, also

Set pvt = ThisWorkbook.WorkSheets("Tabelle1").PivotTables(1)

Es kann sich aber auch um einen anderen Fehler handeln. Zeig uns mal
deinen Code, damit wir dir helfen können.

MfG Frank
_________________________________________________
Frank Arendt-Theilen, Hameln
Microsoft Excel - Die ExpertenTipps: tinyurl.com/cmned
Website: xl-faq.de
Tobias Ehlert
2006-10-21 17:47:19 UTC
Permalink
Post by unknown
Hallo Tobias,
dies kann eventuell an der Art der Referenzierung liegen. Benutze hier
nicht ActiveSheet, sondern referenziere genau das Tabellenblatt, also
Set pvt = ThisWorkbook.WorkSheets("Tabelle1").PivotTables(1)
Es kann sich aber auch um einen anderen Fehler handeln. Zeig uns mal
deinen Code, damit wir dir helfen können.
MfG Frank
_________________________________________________
Frank Arendt-Theilen, Hameln
Microsoft Excel - Die ExpertenTipps: tinyurl.com/cmned
Website: xl-faq.de
Hallo,

sorry für die späte Anwort.
ActiveSheet muss ich nutzen, da es ein allgemeingültiges Script ist.
Das Script selbst ist wohl ohne die Gesamtumstände zu kennen nicht sehr
verständlich. Letztendlich läuft es aber wirklich einwandfrei.
Ich habe nun folgendes gemacht um konkreter zu werden.

Ich habe mich von allen Tabellenblättern verabschiedet und nutze nur noch
ein Sheet mit einer PivotTabelle. Das Script zum formatieren rufe ich
manuell über einen Button auf.
Es funktioniert 20 mal einwandfrei. Beim 21 mal (bzw. nach einem nicht
absehbaren Zeitraum) läuft das Script aufeinmal auf Fehler. Beim Debuggen
konnte ich nun folgende Fehlersituation feststellen (vorher / nachher). Die
PivotTabelle stand zu allen Aufrufen und auch dazwischen fest und wurde
nicht aktualisiert oder geändert.

*****
? activesheet.name
Davor: 1992
Danach: 1992

? activesheet.pivottables.count
Davor: 1
Danach: 1

? activesheet.pivottables(1).name
Davor: Pivot-Tabelle2
Danach: "Die Name Eigenschaft des Pivot Objektes kann nicht zugeordnet
werden"

? ActiveSheet.PivotTables("Pivot-Tabelle2").name
Davor: Pivot-Tabelle2
Danach: "Die Name Eigenschaft des Pivot Objektes kann nicht zugeordnet
werden"
*****

Wie kann es sein, dass "Set pvt =
ThisWorkbook.WorkSheets("1992").PivotTables(1)" irgendwann nicht mehr
funktioniert. Ich bin ratlos um dankbar für jeden Ansatz.

Danke
Tobi
unknown
2006-10-21 18:43:22 UTC
Permalink
Hallo Tobias,
versuche mal folgendes: Vergib dem PivotTable einen _eigenen_ Namen.
Verlass dich nicht auf die automatische Namenvergabe von XL. Eventuell
läuft XL gegen einen - ich nenne das jetzt mal so - "Namenüberlauf".
Ähnliches Verhalten kann man beobachten wenn die Kopie einer Kopie
einer Kopie... eines Tabellenblattes angelegt wird.

MfG Frank
_________________________________________________
Frank Arendt-Theilen (ehem. MVP für Excel), Hameln
Microsoft Excel - Die ExpertenTipps: tinyurl.com/cmned
Website: xl-faq.de
Tobias Ehlert
2006-10-22 00:08:03 UTC
Permalink
Post by unknown
Hallo Tobias,
versuche mal folgendes: Vergib dem PivotTable einen _eigenen_ Namen.
Verlass dich nicht auf die automatische Namenvergabe von XL. Eventuell
läuft XL gegen einen - ich nenne das jetzt mal so - "Namenüberlauf".
Ähnliches Verhalten kann man beobachten wenn die Kopie einer Kopie
einer Kopie... eines Tabellenblattes angelegt wird.
MfG Frank
_________________________________________________
Frank Arendt-Theilen (ehem. MVP für Excel), Hameln
Microsoft Excel - Die ExpertenTipps: tinyurl.com/cmned
Website: xl-faq.de
Hallo Frank,

Du meinst den Namen im Dialog, wenn ich auf Tabelleneigenschaften gehe ?!
Leider haben die Tabellen alle Namen von mir bekommen (bis auf in dem
nachgestellten Beispiel von zuvor). Aber auch das habe ich eben nachgeholt
und kann nach etlicher Zeit das gleiche Problem beobachten :-(

Nun wird es wohl schwer ?!
Tobi
unknown
2006-10-22 10:53:08 UTC
Permalink
Hallo Tobias,
dann hilft hier nur noch - wie Susanne sagt - die genauere kenntnis
deines Codes.

MfG Frank
_________________________________________________
Frank Arendt-Theilen (ehem. MVP für Excel), Hameln
Microsoft Excel - Die ExpertenTipps: tinyurl.com/cmned
Website: xl-faq.de

Wolfgang Habernoll
2006-10-18 10:34:30 UTC
Permalink
Hallo Tobias
Post by Tobias Ehlert
Hallo NG,
ich habe eine Excel Tabelle mit ca. 8 Sheets die jew. eine Pivot Tabelle
enthalten.
Diese formatiere ich nun allesamt per Script über das Event
"Workbook_SheetPivotTableUpdate(ByVal Sh As Object, ByVal Target As
PivotTable)" nach einer gewissen Logik.
Das Ganze funktioniert ziemlich klasse, wenn nicht sporadisch und nicht
immer in der gleichen Weise reproduzierbar nach mehreren Aktualisierungen
welche Aktualisierung meinst du

das Workbook_SheetPivotTableUpdate.... Ereignis wird sowohl durch den "Datem-aktualisiere" Button als auch durch verschieben
der Elemente ausgelöst.
Post by Tobias Ehlert
"pvt.ColumnRange.Row - Die ColumnRange Eigenschaft des Pivot Objektes kann
nicht zugeordnet werden."
Falls du während des Verschiebens der Elemente mal keine im Spaltenkopf hast tritt genau dieser Fehler auf. Teste es doch indem du
sofort nach dem Ereignis *also bevor* dein Code überhaupt etwas macht das mal abfragst etwa so

Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)
Debug.Print Target.ColumnRange.Count
'' hier wirst du dann schon hängen bleiben
Post by Tobias Ehlert
Dabei ist pvt wie folgt zugewiesen worden
Set pvt = ActiveSheet.PivotTables(1)
eine genaue Referenzierung, wie Frank sagte, ist immere besser
Post by Tobias Ehlert
Ich komme dem Fehler einfach nicht auf die Spur. Für mich scheint es so,
als wäre das Ganze für Excel nach einigen Aktualisierungen einfach zu viel
und kann die Variable nicht mehr zuordnen.
Wenn ich die Tabelle nach Auftreten des Fehlers so abspeichere, den Excel
Prozess beende (es hängt dann so ziemlich komplett) und die Datei erneut
öffne um die PivotTabelle zu aktualiseren, erscheint der Fehler nicht mehr.
Erst nach wiederrum 10-20 Versuchen tritt der Fehler erneut auf.
Hat jemand eine Idee was ich hier noch anstellen könnte ?!
Danke für jede Art der Hilfe....
Tobi
mfG
Wolfgang Habernoll
Susanne Wenzel
2006-10-22 07:20:15 UTC
Permalink
Hallo Tobias,
nachdem ich den ganzen Thread bis jetzt gelesen habe, gebe ich auch noch
mal meinen Senf dazu...
Post by Tobias Ehlert
ich habe eine Excel Tabelle mit ca. 8 Sheets die jew. eine Pivot Tabelle
enthalten.
...zuerst einmal, welche Excelversion und BS mit welchem SP-Stand kommen
bei Dir zum Einsatz?
Post by Tobias Ehlert
Diese formatiere ich nun allesamt per Script über das Event
"Workbook_SheetPivotTableUpdate(ByVal Sh As Object, ByVal Target As
PivotTable)" nach einer gewissen Logik.
Ich weiß, Du hast Dich dazu schon geäußert, aber ohne den verwendeten Code
zu kennen ist Hilfeleistung mühsam und kommt teilweise dem Blick in die
Glaskugel nahe...
Post by Tobias Ehlert
Das Ganze funktioniert ziemlich klasse, wenn nicht sporadisch und nicht
immer in der gleichen Weise reproduzierbar nach mehreren Aktualisierungen
"pvt.ColumnRange.Row - Die ColumnRange Eigenschaft des Pivot Objektes kann
nicht zugeordnet werden."
Dabei ist pvt wie folgt zugewiesen worden
Set pvt = ActiveSheet.PivotTables(1)
Setzt Du pvt eigentlich auch wieder auf nothing? Da Du Deinen Code nicht
postest, ist z.B. sowas nicht zu erkennen.
Post by Tobias Ehlert
Ich komme dem Fehler einfach nicht auf die Spur. Für mich scheint es so,
als wäre das Ganze für Excel nach einigen Aktualisierungen einfach zu viel
und kann die Variable nicht mehr zuordnen.
Wenn ich die Tabelle nach Auftreten des Fehlers so abspeichere, den Excel
Prozess beende (es hängt dann so ziemlich komplett) und die Datei erneut
öffne um die PivotTabelle zu aktualiseren, erscheint der Fehler nicht mehr.
Erst nach wiederrum 10-20 Versuchen tritt der Fehler erneut auf.
Ich kenne sporadische Fehler dieser Art auch (bei mir allerdings in einem
völlig anderen Zusammenhang), deshalb...
Post by Tobias Ehlert
Hat jemand eine Idee was ich hier noch anstellen könnte ?!
... habe ich schon noch eine Idee. Teste doch mal aus, per
Fehlerabfangroutine Deinen Code stabil zum Laufen zu kriegen.
Post by Tobias Ehlert
Danke für jede Art der Hilfe....
Ich habe es zumindest versucht. Hast Du eigentlich Wolfgangs Beitrag
gelesen (bei mir wird keine Antwort von Dir angezeigt)?

Viele Grüße aus dem hohen flachen Norden Deutschlands
Susanne
--
Mein System:
Office XP, SP3, aktueller Patchstand
Windows 2000, SP4, aktueller Patchstand
Loading...