Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1356to1360
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

Graphik von Excel in PPT - bricht ab bei Einfügen

Graphik von Excel in PPT - bricht ab bei Einfügen
15.04.2014 13:01:49
Excel
Hallo,
nachdem ich jetzt alle Foren im Internet durch bin, bleibt mein Makro immer noch hängen. Ich möchte Graphiken von excel in ein bestehendes PPT kopieren, per Makro.
Es funktioniert alles : PPT auf, Datei auf, Excel Graph kopieren, richtige Seite in PPT, aber dann fügt er es nicht ein. In der ZW-Ablage ist es, denn wenn ich mit Rechts-klick einfüge, ist es da. (Verweis auf PPT ist auch gesetzt, wenn VBA zu ist, gehts auch nicht). Ich hoffe es kann mir jemand helfen.
Hier der code:
Sub PPTGraphiken()
Dim pptApp As Object, pptPres As Object, pptSlide As Object
Set pptApp = CreateObject("PowerPoint.Application")
pptApp.Visible = True
Set pptPres = pptApp.Presentations.Open("C:\Users\Template1.pptx")
'oeffnet bestehende .ppt-Vorlage
pptApp.ActivePresentation.Slides(1).Select
'Copy chart aus excel
Sheets("Graphik-Märkte-Retail").Select
ActiveSheet.ChartObjects("Chart 2").Activate
ActiveChart.ChartArea.Copy
'Test ob copy in ZW-ablage vohanden -funktioniert
'Workbooks.Add
'Range("B5").Select
'ActiveSheet.PasteSpecial Format:="Bild (Erweiterte Metadatei)", Link:=False _
, DisplayAsIcon:=False
'paste in PPT
pptApp.ActivePresentation.Slides(3).Select
'hier bricht es ab
pptApp.ActiveWindow.View.PasteSpecial Format:="Bild (Erweiterte Metadatei)", Link:=False _
, DisplayAsIcon:=False
With pptApp.ActiveWindow
.Selection.ShapeRange.Left = 110
.Selection.ShapeRange.Top = 100
.Selection.ShapeRange.Width = 500
.Selection.ShapeRange.Height = 400
End With
End Sub

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
PasteSpecial : Parameter von PPT verwenden !
15.04.2014 13:35:03
PPT
Hallo Blech,
ich vermute, das liegt an den falschen Paramtern der .PasteSpecial Anweisung.
Da diese Operation in PPT ausgeführt wird, musst du auch die dort zur Verfügung stehenden Parameter verwenden. Zumindest in PPT2010 existiert dort kein Format:= , sondern allenfalls ein DataType:=
Probiere es mal mit dieser Anweisung :
pptApp.ActiveWindow.View.PasteSpecial DataType:=ppPasteJPG, Link:=False, DisplayAsIcon:=False
Anstelle von ppPasteJPG kannst Du auch einen der anderen verfügbaren Werte zuweisen - siehe Hilfe zu .PasteSpecial in PPT VBA !
Salut, NoNet

Anzeige
AW: PasteSpecial : Parameter von PPT verwenden !
15.04.2014 14:11:14
PPT
Hallo NoNet,
vielen Dank für die Antwort. Leider geht es auch nicht.
ich hatte es schon mal "nur" mit .view.paste probiert. Fehlermeldung: Invalid request. Clipboard empty. (das ist es aber nicht).
Noch ne Idee?
DANKE!
Blech

AW: PasteSpecial : Parameter von PPT verwenden !
15.04.2014 15:21:34
PPT
Hallo Blech,
Wenn du schon Code aus dem Internet kopierst, solltest du wenigstens versuchen ihn zu verstehen.
Du kopierst ein EXCEL-Objekt (ChartArea = Diagrammfläche eines Charts), dass kann so nicht in PPT eingefügt werden. Wenn schon musst du die CopyPicture Methode anwenden. Damit sind dann auch keine Links mehr zur Quelle vorhanden. Die Selektiererei grenzt schon fast an Sektiererei ;-)
Mein Vorschlag (mit meinem Code, angepasst auf deine Bedürfnisse ;-):
Option Explicit
Sub ChartObjectsNachPowerpoint()
' 2014 by EtoPHG
Dim pptApp As Object, pptPres As Object, pptSlide As Object
Dim shp As Object
Set pptApp = CreateObject("PowerPoint.Application")
pptApp.Visible = True
Set pptPres = pptApp.Presentations.Open("C:\Users\Template1.pptx")
'oeffnet bestehende .ppt-Vorlage
ThisWorkbook.Worksheets("Graphik-Märkte-Retail").ChartObjects("Chart 2").CopyPicture  _
xlScreen, xlBitmap
Set pptSlide = pptPres.Slides(3)
Set shp = pptSlide.Shapes.Paste
shp.Top = 100 'Ausrichtung: 100 pixel von oben
shp.Left = 110 'Ausrichtung: 110 pixel von links
shp.Height = 400
shp.Width = 500
End Sub
Gruess Hansueli

Anzeige
AW: PasteSpecial : Parameter von PPT verwenden !
15.04.2014 16:43:02
PPT
Hallo Hansueli,
vielen Dank für die nette Antwort.:-)
Es funktioniert, aber das CopyPicture war nicht das Problem.
Durch Dein:
Set pptSlide = pptPres.Slides(3)
Set shp = pptSlide.Shapes.Paste
hat es mit dem Einfügen geklappt, auch mit meinem alten Copy-Versuch. Aber CopyPicture ist natürlich viel schöner.:-)
Und ich bin echt total dankbar!!!!
VG Blech

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige