Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1928to1932
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Verknüpfung einfügen Excel zu PPT

Verknüpfung einfügen Excel zu PPT
25.04.2023 10:58:36
Philipp

Liebe Excel-Freunde,
ich habe eine ganze Reihe an Diagrammen in Excel, die ich per VBA nach PowerPoint verschieben/verlinken möchte.
Manuell funktioniert es super: ein Diagramm kopieren, nach PPT wechseln, dort "Inhalt einfügen --> Verknüpfung einfügen"
Per VBA Makro bekomme ich es nicht hin. Es werden alle Diagramme als Bild 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?
Danke und liebe Grüße
Philipp





1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige