Automatisches Pivottabellen-Update: Lauzeitfehler 9: "Index außerhalb des gültigen Bereichs"

  • Excel

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von petaod.

    Automatisches Pivottabellen-Update: Lauzeitfehler 9: "Index außerhalb des gültigen Bereichs"

    Hallo zusammen,

    der Code hat einwandfrei funktioniert, jedoch kam nach dem Update von Excel 2010 auf Excel 2016 die Fehlermeldung Lauzeitfehler 9: "Index außerhalb des gültigen Bereichs".

    Hier ist der Quellcode, wo der Fehler bei der ersten Spalte "FLOWFACTOR" in der Zeile 11 auftritt. Nach erneutem Starten taucht der Fehler schon gar nicht mehr auf, sondern es bleibt einfach so hängen.
    Ich bin es schon schrittweise mit dem Debugger durchgegangen, dann springt der Code von Zeile 11 und einem der vielen Charts hin und her in einer Dauerschleife (Siehe Part2 vom Code).
    Ich wäre über jeden Tipp zur Behebung des Problems dankbar. :)

    Part 1:

    Visual Basic-Quellcode

    1. Sub sync_pivots_dssp_12(twbn As String, twsn As Integer)
    2. 'Dim pt As PivotTable
    3. ''Dim pf As PivotFields
    4. ''Dim pf2 As PivotField
    5. ''Dim pf3 As PivotField
    6. 'Set pt = ActiveSheet.PivotTables(1)
    7. ''Set pf = pt.PivotFields
    8. ''Set pf2 = pf.Item("FLOWFACTOR")
    9. ''Set pf3 = ActiveSheet.PivotTables(1).PivotFields.Item("FLOWFACTOR")
    10. Workbooks(twbn).Sheets(twsn).PivotTables(1).PivotFields.Item("FLOWFACTOR").CurrentPage = Workbooks(twbn).Sheets(twsn).PivotTables(2).PivotFields.Item("FLOWFACTOR").CurrentPage.Name
    11. 'MsgBox "done 1"
    12. Workbooks(twbn).Sheets(twsn).PivotTables(1).PivotFields.Item("LINE").CurrentPage = Workbooks(twbn).Sheets(twsn).PivotTables(2).PivotFields.Item("LINE").CurrentPage.Name
    13. 'MsgBox "done 2"
    14. Workbooks(twbn).Sheets(twsn).PivotTables(1).PivotFields.Item("AREA").CurrentPage = Workbooks(twbn).Sheets(twsn).PivotTables(2).PivotFields.Item("AREA").CurrentPage.Name
    15. 'MsgBox "done 3"
    16. Workbooks(twbn).Sheets(twsn).PivotTables(1).PivotFields.Item("MATERIAL").CurrentPage = Workbooks(twbn).Sheets(twsn).PivotTables(2).PivotFields.Item("MATERIAL").CurrentPage.Name
    17. 'MsgBox "done 4"
    18. Workbooks(twbn).Sheets(twsn).PivotTables(1).PivotFields.Item("HQTCF").CurrentPage = Workbooks(twbn).Sheets(twsn).PivotTables(2).PivotFields.Item("HQTCF").CurrentPage.Name
    19. 'MsgBox "done 5"
    20. Workbooks(twbn).Sheets(twsn).PivotTables(1).PivotFields.Item("OWNER").CurrentPage = Workbooks(twbn).Sheets(twsn).PivotTables(2).PivotFields.Item("OWNER").CurrentPage.Name
    21. 'MsgBox "done 6"
    22. 'pt.ClearAllFilters
    23. 'MsgBox ActiveSheet.PivotTables(2).PivotFields.Item("OWNER").CurrentPage.Name
    24. End Sub
    25. 'Sub testsub()
    26. 'End Sub
    27. 'Call sync_pivots(ActiveWorkbook.Name, 4)
    28. 'End Sub


    Part 2:

    Visual Basic-Quellcode

    1. Private Sub Worksheet_PivotTableChangeSync(ByVal Target As PivotTable)
    2. 'MsgBox Target.Name
    3. If Target.Name = "PivotTable11" Then
    4. Application.OnTime Now + TimeValue("0:0:1"), " 'sync_pivots_wtfap """ & Target.Parent.Parent.Name & """,""" & Me.Index & """ ' "
    5. End If
    6. End Sub


    Viele Grüße,

    Mace

    mace schrieb:

    Workbooks(twbn).Sheets(twsn).PivotTables(1).PivotFields.Item("FLOWFACTOR").CurrentPage = Workbooks(twbn).Sheets(twsn).PivotTables(2).PivotFields.Item("FLOWFACTOR").CurrentPage.Name
    Da sind 6 verschiedene Indizierungen drin, von denen wohl eine nicht befriedigt werden kann.
    Schau dir mal vor Ausführung dieser Zeile die einzelnen Objekte im Debugger an, welches den Fehler produziert.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    Hi petaod,

    danke für deine schnelle Antwort.
    Wie kann ich mir die einzelnen Objekte anzeigen lassen? Ich habe das Ganze im "Lokal Fenster" angeschaut, macht mich aber leider auch nicht schlauer.

    Im Part 2 von meines Quellcodes scheint dieses ME-Objekt ins Leere zu laufen. Kann man das irgendwie auffangen? Bin echt am Ende mit meinem Latein.

    Visual Basic-Quellcode

    1. ​Me.Index & """ ' "


    Bilder
    • twnbn und twsn.PNG

      19,89 kB, 1.125×304, 127 mal angesehen

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „mace“ ()

    Setze einen Haltepunkt vor die Zeile.Markiere die einzelnen Teile der Programmzeilen und zieh diesen Text ins Überwachungsfenster.
    Also
    Workbooks(twbn)
    Workbooks(twbn).Sheets(twsn)
    Workbooks(twbn).Sheets(twsn).PivotTables(1)
    Workbooks(twbn).Sheets(twsn).PivotTables(1).PivotFields
    Workbooks(twbn).Sheets(twsn).PivotTables(1).PivotFields.Item("FLOWFACTOR")
    usw.


    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    Hi petaod,

    danke für den Tipp. Ich habe mittlerweile auch eine Fehlermeldung bekommen, die das Problem etwas genauer beschreibt: Laufzeitfehler'1004': Die Item-Eigenschaft des PivotFields-Objekties kann nicht zugeordnet werden.

    Visual Basic-Quellcode

    1. ​Workbooks(twbn).Sheets(twsn).PivotTables(2).PivotFields.Item("FLOWFACTOR").CurrentPage = Workbooks(twbn).Sheets(twsn).PivotTables(1).PivotFields.Item("FLOWFACTOR").CurrentPage.Name


    Nun habe ich die ganze Wurst links und rechts ins Beobachtungsfenster kopiert. Da kamen jede Menge Fehler, aber das ist ein ganz schöner Information-overflow der da rauskommt.

    Zu

    Visual Basic-Quellcode

    1. Workbooks(twbn).Sheets(twsn).PivotTables(2).PivotFields.Item("FLOWFACTOR").CurrentPage
    da steht im Pivotfield überall Anwendungs- oder objektdefinierter Fehler, siehe angehängtes Bild. Anbei noch die Felder zu DataRange
    anscheinend findet er keine Zellen.

    Das Problem ist nur, dass mich das auch nicht weiterbringt in Sachen Fehlerbehebung - Was kann ich gegen diese Fehler tun? Es kann doch nicht sein, dass es bei Excel 2010 funktioniert und bei Excel 2016 plötzlich nicht mehr.
    Bin für jede Hilfe dankbar.
    Bilder
    • pivotfield Anwendungs- oder objektd fehler.PNG

      111,05 kB, 1.175×943, 119 mal angesehen
    • Data Range.PNG

      83,38 kB, 1.172×873, 157 mal angesehen
    • beide Teile twbn FLOWFACTOR.PNG

      34,52 kB, 1.248×378, 148 mal angesehen