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

Excel Bereich nach PPT verknüpfen

Excel Bereich nach PPT verknüpfen
10.10.2013 10:07:12
Marc
Hallöchen,
ich ärgere mich seit gestern mit einem VBA Skript rum.
Ziel ist es einen Bereich in Excel zu kopieren und per VBA in eine ppt Seite einzufügen.
(Excel 2010, PPT 2010)
Im Prinzip soll VBA das abbilden, was ich erziele, wenn ich in PPT über Inhalte einfügen/ Verknüpfungen einfügen/ Microsoft Excel...
Es läuft auch alles sauber durch, beim Einfügen kommt die Fehlermeldung:
“View.PasteSPecial: Invalid Request. Clipboard is empty or contains data which may not be pasted here.”
Clipboard kann aber nicht leer sein, weil wenn ich an der Stelle den Vorgang manuell über "Inhalte einfügen/ Verknüpfungen einfügen/ Microsoft Excel..."
Fortsetze wird's ordnungsgemäß eingefügt.
Fehlt mir ein Verweis in VBA, oder gibt's ne andere leicht anpassbare Lösung?
Die Verknüpfung der xls muss aber bestehen bleiben, so dass wenn ich in xls was ändere ich es in ppt aktualisert.
Das Skript selbst habe ich im Netz gefunden und die Pfade auf meine Strukturen angepasst:

Sub Excel_Range_an_PPT()
Dim ppApp As Object
Dim ppFile As Object
Dim ppPres As String
Dim picObj As Object, picName As String
'Dateiname
ppPres = "F:\Planung 2014 PCO\Kundenblatt Planung 2014_Vorlage.ppt"
'Object referenzieren
Set ppApp = CreateObject("Powerpoint.Application")
'Bereich kopieren
Worksheets("ppt_6").Range("D5:AG51").Copy
'Object initialisieren
ppApp.Visible = msoTrue
'PPT öffnen
Set ppFile = ppApp.Presentations.Open(ppPres)
'Foliennummer angeben
ppApp.ActivePresentation.Slides(2).Select
'Bereich einfügen und OLE Verknüpfung herstellen = Link
With ppApp.ActiveWindow
'.ViewType = ppViewSlide
.View.PasteSpecial DataType:=ppPasteDefault, link:=msoTrue
End With
'Eingefügte Tabelle skalieren
With ppApp.ActiveWindow.Selection.ShapeRange
'Oberer Rand 1 cm unter Standardtitel
.Top = 150
'Linker Rand 1.5 cm von linkem Folienrand
.Left = 35
'Eingefügte Tabelle auf Links und rechts 1,5 cm Rand skalieren
.Width = 650
'Bei Bedarf Höhe noch einstellen
'Hier ist jedoch zu beachten, dass das Object skaliert wird !!!
'Die Breite verändert sich dann
'.Height = 300
End With
End Sub

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excel Bereich nach PPT verknüpfen
10.10.2013 14:06:34
fcs
Hallo Marc,
da du eine PowerPoint-VBA-Konstante verwendest, musst du den Verweis aud die Microsoft Powerpoint x.y Object Libay setzen.
Due kannst aber auch den nummerischen Wert einsetzen, dann geht es ohne.
Zusätzlich soltest du das Öffnen der Vorlage so einstellen, dass nicht das Original sondern eine Kopie geöffnet wird. Die geänderten Zeilen hab ich markiert.
Gruß
Franz
Sub Excel_Range_an_PPT()
Dim ppApp As Object
Dim ppFile As Object
Dim ppPres As String
Dim picObj As Object, picName As String
'Dateiname
ppPres = "F:\Planung 2014 PCO\Kundenblatt Planung 2014_Vorlage.ppt"
ppPres = "D:\Test\Kundenblatt Planung 2014_Vorlage.ppt"
'Object referenzieren
Set ppApp = CreateObject("Powerpoint.Application")
'Bereich kopieren
Worksheets("ppt_6").Range("D5:AG51").Copy
'Object initialisieren
ppApp.Visible = msoTrue
'Kopie der PPT öffnen                '#### fcs
Set ppFile = ppApp.Presentations.Open(Filename:=ppPres, untitled:=msoTrue) '#### fcs
'Foliennummer angeben
ppApp.ActivePresentation.Slides(2).Select
'Bereich einfügen und OLE Verknüpfung herstellen = Link
With ppApp.ActiveWindow
'.ViewType = ppViewSlide
.View.PasteSpecial DataType:=0, link:=msoTrue '0 = ppPasteDefault '#### fcs
End With
'Eingefügte Tabelle skalieren
With ppApp.ActiveWindow.Selection.ShapeRange
'Oberer Rand 1 cm unter Standardtitel
.Top = 150
'Linker Rand 1.5 cm von linkem Folienrand
.Left = 35
'Eingefügte Tabelle auf Links und rechts 1,5 cm Rand skalieren
.Width = 650
'Bei Bedarf Höhe noch einstellen
'Hier ist jedoch zu beachten, dass das Object skaliert wird !!!
'Die Breite verändert sich dann
'.Height = 300
End With
End Sub

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige