Liebe Excel-Freunde,
ich habe eine ganze Reihe an Diagrammenin Excel, die ich per VBA nach PowerPoint verschieben möchte.
Manuell funktioniert es super: ein Diagramm kopieren, nach PPT wecheln, dort "Inhalt einfügen --> Verknüpfung einfügen"
Per VBA Makro bekomme ich es nicht hin. Es werden alle Diagramm eingefügt, aber ohne Verlinkung.
Anbei der bestehende Code:
Sub CopyAllExcelChartsToPowerPoint()
Dim sourceWorkbook As Workbook
Dim sourceWorksheet As Worksheet
Dim sourceChart As Shape
Dim PowerPointApp As Object
Dim PowerPointPresentation As Object
Dim PowerPointSlide As Object
Dim chartNames As Variant
Dim chartName As Variant
Dim slideIndex As Integer
' Set the source workbook and worksheet
Set sourceWorkbook = Workbooks.Open("F:\Spotlight_TABLES_2P_gesamt.xlsm")
Set sourceWorksheet = sourceWorkbook.Worksheets("Sheet1")
' List of chart names to copy
chartNames = Array("B1_ErsterEindruck", _
"B2_Design", _
"BP1_PräferenzVorAnwendung", _
"BP2_PräferenzVorAnwendungNachProdukt")
'Liste zu Testzwecken gelürzt
' Create an instance of PowerPoint or get an existing instance
On Error Resume Next
Set PowerPointApp = GetObject(class:="PowerPoint.Application")
If PowerPointApp Is Nothing Then
Set PowerPointApp = CreateObject(class:="PowerPoint.Application")
End If
On Error GoTo 0
' Open the target PowerPoint presentation
Set PowerPointPresentation = PowerPointApp.Presentations("Spotlight_CHARTS_2P.pptx")
slideIndex = 2
' Loop through the chart names
For Each chartName In chartNames
' Set the chart to copy
Set sourceChart = sourceWorksheet.Shapes(chartName)
' Copy the chart from Excel
sourceChart.Copy
' Set the target slide
Set PowerPointSlide = PowerPointPresentation.Slides(slideIndex)
' Paste the chart into PowerPoint as a linked object
PowerPointSlide.Shapes.PasteSpecial DataType:=2
' Increment the slideIndex
slideIndex = slideIndex + 1
Next chartName
' Make PowerPoint visible
PowerPointApp.Visible = True
PowerPointApp.Activate
End Sub
Ich habe es bereits mit "jeglichen" DataTypes" zum Einfügen versucht, leider ohne Erfolgt.
Wo ist mein Denkfehler?
|