Makro: Exceltabelle nach PPT mit Scrollleiste
04.03.2009 14:52:37
Sven
Ich komme nicht weiter. Ich kann Bilder und Grafiken sowie Zellbereiche ohne Probleme nach Powerpoint per Makro bringen. Mein Problem ist : Ich habe eine immer unterschiedlich lange Tabelle......diese besteht aus Spalten A1-H1 und dann eben beliebig Zeilen. Ich möchte nun per Makro, den Text bis zur letzten Zeile finden....das alles kopieren nach Powerpoint und dort als scrollbares Textfeld einfügen auf 1 Folie die ich auswählen kann.....
1. geht das überhaupt per Makro ?
2. wenn ja wie ? bin da echt ratlos und googeln hat bisher nich zum Erfolg geführt.
Ich füge mal mein Makro an ( da ist nur beinhaltet,welcheDiagramme er an welche Stelle und in welcher Größe setzt..also meine Textfolie wäre dann BSP Slide 7..
Für Ratschläge oder Infos wäre ich euch sehr dankbar
(! Achja ich bin Anfänger in VBA )
Sub toppperiod()
Dim ppApp As Object
Dim ppFile As Object
Dim ppPres As String
'Dateiname
ppPres = "C:\Demo.ppt"
'Object referenzieren
Set ppApp = CreateObject("Powerpoint.Application")
'Diagramm kopieren : Name bitte anpassen
Worksheets("Auswertung Period").Range("A1:H30").Copy
'Object initialisieren
ppApp.Visible = msoTrue
'PPT öffnen
Set ppFile = ppApp.Presentations.Open(ppPres)
'Foliennummer angeben
ppApp.ActivePresentation.Slides(3).Select
'Bereich einfügen und OLE Verknüpfung herstellen = Link
With ppApp.ActiveWindow
.View.PasteSpecial DataType:=ppPaste, link:=msoTrue
End With
'Eingefügte Tabelle skalieren
With ppApp.ActiveWindow.Selection.ShapeRange
'Oberer Rand 1 cm unter Standardtitel
.Top = 110
'Linker Rand 1.5 cm von linkem Folienrand
.Left = 35
'Eingefügte Tabelle auf Links und rechts 1,5 cm Rand skalieren
.Width = 665
'Bei Bedarf Höhe noch einstellen
'Hier ist jedoch zu beachten, dass das Object skaliert wird !!!
'Die Breite verändert sich dann
'.Height = 330
End With
ActiveSheet.ChartObjects("Diagramm 38").Chart.ChartArea.Copy
'Object initialisieren
ppApp.Visible = msoTrue
'PPT öffnen
ppApp.ActivePresentation.Slides(4).Select
'Bereich einfügen und OLE Verknüpfung herstellen = Link
With ppApp.ActiveWindow
.View.PasteSpecial DataType:=ppPasteOLEObject, link:=msoTrue
End With
'Eingefügtes Diagramm 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 = 600
'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
ActiveSheet.ChartObjects("Diagramm 37").Chart.ChartArea.Copy
'Object initialisieren
ppApp.Visible = msoTrue
'PPT öffnen
ppApp.ActivePresentation.Slides(5).Select
'Bereich einfügen und OLE Verknüpfung herstellen = Link
With ppApp.ActiveWindow
.View.PasteSpecial DataType:=ppPasteOLEObject, link:=msoTrue
End With
'Eingefügtes Diagramm 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 = 600
'Bei Bedarf Höhe noch einstellen
'Hier ist jedoch zu beachten, dass das Object skaliert wird !!!
'Die Breite verändert sich dann
'.Height = 340
End With
'Diagramm kopieren : Name bitte anpassen
Worksheets("Auswertung Period").Range("A106:H129").Copy
'Object initialisieren
ppApp.Visible = msoTrue
'PPT öffnen
ppApp.ActivePresentation.Slides(6).Select
'Bereich einfügen und OLE Verknüpfung herstellen = Link
With ppApp.ActiveWindow
.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 = 70
'Eingefügte Tabelle auf Links und rechts 1,5 cm Rand skalieren
.Width = 600
'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