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