Aktualisierung der Daten von PowerPoint Diagramm via VBA funktioniert nur zweimal

  • PowerPoint

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von ABSOLUTER_BEGINNER.

    Aktualisierung der Daten von PowerPoint Diagramm via VBA funktioniert nur zweimal

    Liebe Forumsmitglieder,
    via Userform gebe ich Werte an ein PPT-Dok weiter, die unterschiedliche Diagramme befüllen sollen. Der angeführte Code funktioniert auch problemlos bei Office 2010/2013. Mit der Umstellung auf O365 tritt ein seltsamer Fehler auf. Die ersten beiden Diagramme werden wunderbar aktualisiert, dem dritten werden Werte korrekt mitgegeben es bleibt aber unverändert und beim vierten geht die Datenquelle verloren und man kann es auch händisch nicht mehr bearbeiten. Hat jmd ne Erklärungs- oder besser Lösungsidee? Muss ich irgendetwas beenden, aufrufen etc.?

    Danke für Tipps

    Quellcode

    1. Option Strict On
    2. Imports Excel = Microsoft.Office.Interop.Excel
    3. Imports PowerPoint = Microsoft.Office.Interop.PowerPoint
    4. Imports System.IO
    5. Public Class Eingabemaske
    6. Private Sub ButtonGutachtenErstellen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonGutachtenErstellen.Click
    7. Dim WorkBook As Excel.Workbook
    8. Dim WorkSheet As Excel.Worksheet
    9. Dim AppPfad As String = Application.StartupPath
    10. Dim PPT As PowerPoint.Application
    11. Dim PPTDoc As PowerPoint.Presentation
    12. Dim Chart1 As PowerPoint.Chart
    13. Dim Chart2 As PowerPoint.Chart
    14. Dim Chart3 As PowerPoint.Chart
    15. Dim Chart4 As PowerPoint.Chart
    16. Dim PPTPfad As String = "Vorlagen\Gutachtenvorlage2.potx"
    17. PPT = CType(CreateObject("PowerPoint.Application"), PowerPoint.Application)
    18. If File.Exists(Path.Combine(AppPfad, PPTPfad)) Then
    19. PPTDoc = PPT.Presentations.Open(Path.Combine(AppPfad, PPTPfad), Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoTrue, Microsoft.Office.Core.MsoTriState.msoCTrue)
    20. LabelStatus.Text = "Die Dokumentenvorlage wurde geladen."
    21. Else
    22. MsgBox("Die Dokumentenvorlage konnte nicht geöffnet werden. Bitte überprüfen Sie, ob die Datei vorhanden ist. Es wurde kein Gutachten erstellt.")
    23. PPT.Quit()
    24. PPTDoc = Nothing
    25. LabelStatus.Text = "Gutachtenerstellung fehlgeschlagen!"
    26. Exit Sub
    27. End If
    28. With PPTDoc.Slides(1).Shapes
    29. If CBool(.Item("Inhaltsplatzhalter 5").HasChart) Then
    30. Chart1 = CType(.Item("Inhaltsplatzhalter 5").Chart, PowerPoint.Chart)
    31. Chart1.ChartData.Activate()
    32. WorkBook = CType(Chart1.ChartData.Workbook, Excel.Workbook)
    33. WorkSheet = CType(WorkBook.Sheets(1), Excel.Worksheet)
    34. With WorkSheet
    35. .Range("C7").Value = 2
    36. .Range("C2").Value = 2
    37. .Range("C3").Value = 2
    38. .Range("C4").Value = 2
    39. .Range("C5").Value = 2
    40. .Range("C6").Value = 2
    41. .Range("B7").Value = 2
    42. .Range("B2").Value = 2
    43. .Range("B3").Value = 2
    44. .Range("B4").Value = 2
    45. .Range("B5").Value = 2
    46. .Range("B6").Value = 2
    47. End With
    48. WorkBook.Close()
    49. Chart1 = Nothing
    50. WorkBook = Nothing
    51. WorkSheet = Nothing
    52. System.Threading.Thread.Sleep(1000)
    53. End If
    54. If CBool(.Item("Inhaltsplatzhalter 6").HasChart) Then
    55. Chart2 = CType(.Item("Inhaltsplatzhalter 6").Chart, PowerPoint.Chart)
    56. Chart2.ChartData.Activate()
    57. WorkBook = CType(Chart2.ChartData.Workbook, Excel.Workbook)
    58. WorkSheet = CType(WorkBook.Sheets(1), Excel.Worksheet)
    59. With WorkSheet
    60. .Range("C7").Value = 2
    61. .Range("C2").Value = 2
    62. .Range("C3").Value = 2
    63. .Range("C4").Value = 2
    64. .Range("C5").Value = 2
    65. .Range("C6").Value = 2
    66. .Range("B7").Value = 2
    67. .Range("B2").Value = 2
    68. .Range("B3").Value = 2
    69. .Range("B4").Value = 2
    70. .Range("B5").Value = 2
    71. .Range("B6").Value = 2
    72. End With
    73. WorkBook.Close()
    74. Chart2 = Nothing
    75. WorkBook = Nothing
    76. WorkSheet = Nothing
    77. System.Threading.Thread.Sleep(1000)
    78. End If
    79. End With
    80. With PPTDoc.Slides(2).Shapes
    81. If CBool(.Item("Inhaltsplatzhalter 5").HasChart) Then
    82. Chart1 = CType(.Item("Inhaltsplatzhalter 5").Chart, PowerPoint.Chart)
    83. Chart1.ChartData.Activate()
    84. WorkBook = CType(Chart1.ChartData.Workbook, Excel.Workbook)
    85. WorkSheet = CType(WorkBook.Sheets(1), Excel.Worksheet)
    86. With WorkSheet
    87. .Range("C7").Value = 2
    88. .Range("C2").Value = 2
    89. .Range("C3").Value = 2
    90. .Range("C4").Value = 2
    91. .Range("C5").Value = 2
    92. .Range("C6").Value = 2
    93. .Range("B7").Value = 2
    94. .Range("B2").Value = 2
    95. .Range("B3").Value = 2
    96. .Range("B4").Value = 2
    97. .Range("B5").Value = 2
    98. .Range("B6").Value = 2
    99. End With
    100. WorkBook.Close()
    101. Chart1 = Nothing
    102. WorkBook = Nothing
    103. WorkSheet = Nothing
    104. System.Threading.Thread.Sleep(1000)
    105. End If
    106. If CBool(.Item("Inhaltsplatzhalter 6").HasChart) Then
    107. Chart2 = CType(.Item("Inhaltsplatzhalter 6").Chart, PowerPoint.Chart)
    108. Chart2.ChartData.Activate()
    109. WorkBook = CType(Chart2.ChartData.Workbook, Excel.Workbook)
    110. WorkSheet = CType(WorkBook.Sheets(1), Excel.Worksheet)
    111. With WorkSheet
    112. .Range("C7").Value = 2
    113. .Range("C2").Value = 2
    114. .Range("C3").Value = 2
    115. .Range("C4").Value = 2
    116. .Range("C5").Value = 2
    117. .Range("C6").Value = 2
    118. .Range("B7").Value = 2
    119. .Range("B2").Value = 2
    120. .Range("B3").Value = 2
    121. .Range("B4").Value = 2
    122. .Range("B5").Value = 2
    123. .Range("B6").Value = 2
    124. End With
    125. WorkBook.Close()
    126. Chart2 = Nothing
    127. WorkBook = Nothing
    128. WorkSheet = Nothing
    129. System.Threading.Thread.Sleep(1000)
    130. End If
    131. End With
    132. End Sub