Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Diagramm/Chart per VBA in PowerPoint positionieren

Diagramm/Chart per VBA in PowerPoint positionieren
14.11.2017 09:49:29
Karsten
Hallo zusammen,
ich möchte aus Excel zwei Diagramme per VBA nach PowerPoint kopieren -> die beiden Diagramme werden bereits als Grafik auf die entsprechende Folie kopiert, aber nun möchte ich sie noch gern positionieren...
Leider sind meine VBA-Kenntnisse gleich null und ich finde keine Lösung -> für jemanden mit VBA-Kenntnissen bestimmt kein großes Thema, oder? ;-)

Sub Test()
' Test Makro
' Tastenkombination: Strg+Umschalt+X
Dim strPOTX As String
Dim strPfad As String
Dim pptApp As Object
Dim pptPres As Presentation
strPfad = "D:\Documents\1.0 Tool-Werkstatt\2017\Präsentation 2018\"
strPOTX = "Master_2018_20171023_v1.0.potx"
Set pptApp = New PowerPoint.Application
pptVorlage = strPfad & strPOTX
pptApp.Presentations.Open Filename:=pptVorlage, untitled:=msoTrue
Set pptPres = pptApp.ActivePresentation
pptPres.Slides(1).Select
pptPres.Slides(1).Shapes("Untertitelbox").TextFrame.TextRange.Characters.Text = Range(" _
rng_Zeitraum").Value
Sheets("Tabelle2").ChartObjects("Dia_Gesamtvolumen").CopyPicture
pptPres.Slides(2).Shapes.PasteSpecial DataType:=ppPasteEnhancedMetafile
Sheets("Tabelle2").ChartObjects("Dia_Anzahl").CopyPicture
pptPres.Slides(2).Shapes.PasteSpecial DataType:=ppPasteEnhancedMetafile
pptPres.SaveAs strPfad & Range("rng_Thema") & "_" & Range("rng_Datum") & ".pptx"
pptPres.Close
pptApp.Quit
Set pptPres = Nothing
Set pptApp = Nothing
End Sub

Vorab schon einmal herzlichen Dank!
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Das geht nach diesem...
14.11.2017 11:14:03
Case
Hallo, :-)
... Prinzip: ;-)
Dim objShape As Object
'..... Dein Code VOR dem kopieren der Diagramme
Sheets("Tabelle2").ChartObjects("Dia_Gesamtvolumen").CopyPicture
Set objShape = pptPres.Slides(2).Shapes.PasteSpecial(DataType:=ppPasteEnhancedMetafile)
With objShape
.Top = 20
.Height = 100
.Width = 300
.Left = 10
End With
Set objShape = Nothing
Sheets("Tabelle2").ChartObjects("Dia_Anzahl").CopyPicture
Set objShape = pptPres.Slides(2).Shapes.PasteSpecial(DataType:=ppPasteEnhancedMetafile)
With objShape
.Top = 20
.Height = 100
.Width = 300
.Left = 320
End With
Set objShape = Nothing
'..... Dein Code NACH dem kopieren der Diagramme
Eventuell kannst Du dir hier noch ein paar Infos ziehen: ;-)
Excel - PowerPoint - drei Diagramme auf eine Folie...
Servus
Case

Anzeige
AW: Das geht nach diesem...
14.11.2017 13:41:48
Karsten
Hey Case,
vielen Dank! Funktioniert... ;-)
VG Karsten
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Diagramm in PowerPoint per VBA positionieren


Schritt-für-Schritt-Anleitung

Um ein Diagramm aus Excel in PowerPoint zu kopieren und an einer bestimmten Position zu platzieren, folge diesen Schritten:

  1. VBA-Editor öffnen: Drücke ALT + F11 in Excel, um den VBA-Editor zu öffnen.

  2. Neues Modul erstellen: Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.

  3. VBA-Code einfügen: Füge den folgenden Code in das Modul ein:

    Sub DiagrammNachPowerPoint()
        Dim pptApp As Object
        Dim pptPres As Object
        Dim objShape As Object
        Dim strPfad As String
    
        strPfad = "D:\Documents\Präsentation.pptx" ' Pfad zur PowerPoint-Präsentation
    
        ' PowerPoint-Anwendung starten
        Set pptApp = CreateObject("PowerPoint.Application")
        pptApp.Visible = True
    
        ' Präsentation öffnen
        Set pptPres = pptApp.Presentations.Open(strPfad)
    
        ' Diagramm kopieren
        Sheets("Tabelle2").ChartObjects("Dia_Gesamtvolumen").CopyPicture
        Set objShape = pptPres.Slides(1).Shapes.PasteSpecial(DataType:=ppPasteEnhancedMetafile)
    
        ' Position und Größe anpassen
        With objShape
            .Top = 20
            .Height = 100
            .Width = 300
            .Left = 10
        End With
    
        pptPres.Save
        pptPres.Close
        pptApp.Quit
    
        Set pptPres = Nothing
        Set pptApp = Nothing
    End Sub
  4. Makro ausführen: Gehe zurück zu Excel und führe das Makro aus, um das Diagramm in PowerPoint zu positionieren.


Häufige Fehler und Lösungen

  • Fehler: PowerPoint-Anwendung öffnet sich nicht.

    • Lösung: Stelle sicher, dass PowerPoint auf deinem Computer installiert ist und der Pfad zur Präsentation korrekt ist.
  • Fehler: Diagramm wird nicht kopiert.

    • Lösung: Überprüfe den Namen des Diagramms in Excel. Er muss genau mit dem im Code übereinstimmen.
  • Fehler: Diagramm wird nicht an der gewünschten Position angezeigt.

    • Lösung: Überprüfe die Werte für Top, Left, Height und Width im Code.

Alternative Methoden

Falls du keinen VBA-Code verwenden möchtest, kannst du auch manuell Diagramme in PowerPoint einfügen:

  1. Kopiere das Diagramm in Excel (Rechtsklick auf das Diagramm > Kopieren).
  2. Wechsle zu PowerPoint und füge das Diagramm ein (Rechtsklick > Einfügen).
  3. Positioniere das Diagramm manuell auf der Folie.

Praktische Beispiele

Hier ist ein Beispiel, wie du mehrere Diagramme in einer Präsentation platzieren kannst:

Sub MehrereDiagrammeNachPowerPoint()
    Dim pptApp As Object
    Dim pptPres As Object
    Dim objShape As Object
    Dim strPfad As String

    strPfad = "D:\Documents\Präsentation.pptx"

    Set pptApp = CreateObject("PowerPoint.Application")
    pptApp.Visible = True
    Set pptPres = pptApp.Presentations.Open(strPfad)

    ' Erstes Diagramm
    Sheets("Tabelle2").ChartObjects("Dia_Gesamtvolumen").CopyPicture
    Set objShape = pptPres.Slides(1).Shapes.PasteSpecial(DataType:=ppPasteEnhancedMetafile)
    With objShape
        .Top = 20
        .Left = 10
    End With

    ' Zweites Diagramm
    Sheets("Tabelle2").ChartObjects("Dia_Anzahl").CopyPicture
    Set objShape = pptPres.Slides(1).Shapes.PasteSpecial(DataType:=ppPasteEnhancedMetafile)
    With objShape
        .Top = 20
        .Left = 320
    End With

    pptPres.Save
    pptPres.Close
    pptApp.Quit

    Set pptPres = Nothing
    Set pptApp = Nothing
End Sub

Tipps für Profis

  • Nutze Fehlerbehandlung in deinem VBA-Code, um Probleme während der Ausführung besser zu identifizieren.
  • Experimentiere mit den Positionseinstellungen (Top, Left) für eine bessere Layoutgestaltung deiner Diagramme in PowerPoint.
  • Verwende Benutzerdefinierte Makros, um mehrere Diagramme mit einem einzigen Klick zu exportieren, was Zeit spart.

FAQ: Häufige Fragen

1. Kann ich auch andere Grafiken in PowerPoint per VBA einfügen? Ja, du kannst jede Art von Grafik, die du in Excel hast, auf ähnliche Weise in PowerPoint einfügen.

2. Welche Excel-Version benötige ich für VBA? VBA ist in den meisten neueren Excel-Versionen verfügbar, einschließlich Excel 2010, 2013, 2016 und 2019.

3. Gibt es eine Möglichkeit, die Größe des Diagramms automatisch anzupassen? Ja, du kannst die AutoSize-Eigenschaft von Shapes verwenden, um die Größe automatisch anzupassen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige