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
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
- Option Strict On
- Imports Excel = Microsoft.Office.Interop.Excel
- Imports PowerPoint = Microsoft.Office.Interop.PowerPoint
- Imports System.IO
- Public Class Eingabemaske
- Private Sub ButtonGutachtenErstellen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonGutachtenErstellen.Click
- Dim WorkBook As Excel.Workbook
- Dim WorkSheet As Excel.Worksheet
- Dim AppPfad As String = Application.StartupPath
- Dim PPT As PowerPoint.Application
- Dim PPTDoc As PowerPoint.Presentation
- Dim Chart1 As PowerPoint.Chart
- Dim Chart2 As PowerPoint.Chart
- Dim Chart3 As PowerPoint.Chart
- Dim Chart4 As PowerPoint.Chart
- Dim PPTPfad As String = "Vorlagen\Gutachtenvorlage2.potx"
- PPT = CType(CreateObject("PowerPoint.Application"), PowerPoint.Application)
- If File.Exists(Path.Combine(AppPfad, PPTPfad)) Then
- PPTDoc = PPT.Presentations.Open(Path.Combine(AppPfad, PPTPfad), Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoTrue, Microsoft.Office.Core.MsoTriState.msoCTrue)
- LabelStatus.Text = "Die Dokumentenvorlage wurde geladen."
- Else
- MsgBox("Die Dokumentenvorlage konnte nicht geöffnet werden. Bitte überprüfen Sie, ob die Datei vorhanden ist. Es wurde kein Gutachten erstellt.")
- PPT.Quit()
- PPTDoc = Nothing
- LabelStatus.Text = "Gutachtenerstellung fehlgeschlagen!"
- Exit Sub
- End If
- With PPTDoc.Slides(1).Shapes
- If CBool(.Item("Inhaltsplatzhalter 5").HasChart) Then
- Chart1 = CType(.Item("Inhaltsplatzhalter 5").Chart, PowerPoint.Chart)
- Chart1.ChartData.Activate()
- WorkBook = CType(Chart1.ChartData.Workbook, Excel.Workbook)
- WorkSheet = CType(WorkBook.Sheets(1), Excel.Worksheet)
- With WorkSheet
- .Range("C7").Value = 2
- .Range("C2").Value = 2
- .Range("C3").Value = 2
- .Range("C4").Value = 2
- .Range("C5").Value = 2
- .Range("C6").Value = 2
- .Range("B7").Value = 2
- .Range("B2").Value = 2
- .Range("B3").Value = 2
- .Range("B4").Value = 2
- .Range("B5").Value = 2
- .Range("B6").Value = 2
- End With
- WorkBook.Close()
- Chart1 = Nothing
- WorkBook = Nothing
- WorkSheet = Nothing
- System.Threading.Thread.Sleep(1000)
- End If
- If CBool(.Item("Inhaltsplatzhalter 6").HasChart) Then
- Chart2 = CType(.Item("Inhaltsplatzhalter 6").Chart, PowerPoint.Chart)
- Chart2.ChartData.Activate()
- WorkBook = CType(Chart2.ChartData.Workbook, Excel.Workbook)
- WorkSheet = CType(WorkBook.Sheets(1), Excel.Worksheet)
- With WorkSheet
- .Range("C7").Value = 2
- .Range("C2").Value = 2
- .Range("C3").Value = 2
- .Range("C4").Value = 2
- .Range("C5").Value = 2
- .Range("C6").Value = 2
- .Range("B7").Value = 2
- .Range("B2").Value = 2
- .Range("B3").Value = 2
- .Range("B4").Value = 2
- .Range("B5").Value = 2
- .Range("B6").Value = 2
- End With
- WorkBook.Close()
- Chart2 = Nothing
- WorkBook = Nothing
- WorkSheet = Nothing
- System.Threading.Thread.Sleep(1000)
- End If
- End With
- With PPTDoc.Slides(2).Shapes
- If CBool(.Item("Inhaltsplatzhalter 5").HasChart) Then
- Chart1 = CType(.Item("Inhaltsplatzhalter 5").Chart, PowerPoint.Chart)
- Chart1.ChartData.Activate()
- WorkBook = CType(Chart1.ChartData.Workbook, Excel.Workbook)
- WorkSheet = CType(WorkBook.Sheets(1), Excel.Worksheet)
- With WorkSheet
- .Range("C7").Value = 2
- .Range("C2").Value = 2
- .Range("C3").Value = 2
- .Range("C4").Value = 2
- .Range("C5").Value = 2
- .Range("C6").Value = 2
- .Range("B7").Value = 2
- .Range("B2").Value = 2
- .Range("B3").Value = 2
- .Range("B4").Value = 2
- .Range("B5").Value = 2
- .Range("B6").Value = 2
- End With
- WorkBook.Close()
- Chart1 = Nothing
- WorkBook = Nothing
- WorkSheet = Nothing
- System.Threading.Thread.Sleep(1000)
- End If
- If CBool(.Item("Inhaltsplatzhalter 6").HasChart) Then
- Chart2 = CType(.Item("Inhaltsplatzhalter 6").Chart, PowerPoint.Chart)
- Chart2.ChartData.Activate()
- WorkBook = CType(Chart2.ChartData.Workbook, Excel.Workbook)
- WorkSheet = CType(WorkBook.Sheets(1), Excel.Worksheet)
- With WorkSheet
- .Range("C7").Value = 2
- .Range("C2").Value = 2
- .Range("C3").Value = 2
- .Range("C4").Value = 2
- .Range("C5").Value = 2
- .Range("C6").Value = 2
- .Range("B7").Value = 2
- .Range("B2").Value = 2
- .Range("B3").Value = 2
- .Range("B4").Value = 2
- .Range("B5").Value = 2
- .Range("B6").Value = 2
- End With
- WorkBook.Close()
- Chart2 = Nothing
- WorkBook = Nothing
- WorkSheet = Nothing
- System.Threading.Thread.Sleep(1000)
- End If
- End With
- End Sub