Daten von XLS nach PPT in neue Folie kopi
XLS
Ich bin da auf ein Problem gestossen, das ich weder mit der Online-Hilfe, noch mit der Web-Recherche habe lösen können.
Ich möchte Daten, welche ich in einer XLS-Tabelle bespeichert habe, in eine PowerPoint-Präsentation überführen. Für jeden neuen Datensatz (eine Zeile in XLS) möchte ich in PowerPoint eine neue Folie eingefügt haben. Ein Datensatz besteht dabei aus mehreren Daten (in Spalten abgelegt), für die ich jeweils ein Textfeld auf der Folie erstellen will und dort mit dem in einer Variablen zwischengespeicherten Wert abfüllen möchte.
Nun habe ich durch einige Recherchen folgende Zeilen zusammengestellt:
Sub Slides_erstellen()
'Vorbereitete PPT-Datei öffnen
Set PPApp = CreateObject("Powerpoint.Application")
PPApp.Visible = True
PPApp.Presentations.Open Filename:="H:\Documente\KPI-Katalog.ppt"
'Werte aus XLS pro Datensatz abfüllen; hier mal für 4 Zeilen
For i = 2 To 5
KPI_ID = Range("A" & i)
KPI = Range("B" & i)
Beschreibung = Range("C" & i)
Dimension = Range("D" & i)
'Neue Folie hinzufügen, Format Blankovorlage
SlideCount = PPPres.Slides.Count
Set PPSlide = PPPres.Slides.Add(SlideCount + 1, ppLayoutBlank)
PPApp.ActiveWindow.View.GotoSlide PPSlide.SlideIndex
With PPSlide
'Textfelder hinzufügen und mit Inhalt aus Excel-Tabelle abfüllen
Set ppTextbox1 = PPPres.Shapes.AddTextbox(msoTextOrientationHorizontal, 10, 10, 300, 50)
ppTextbox1.TextFrame.TextRange.Text = KPI_ID
Set ppTextbox1 = PPPres.Shapes.AddTextbox(msoTextOrientationHorizontal, 10, 50, 300, 50)
ppTextbox1.TextFrame.TextRange.Text = KPI
Set ppTextbox1 = PPPres.Shapes.AddTextbox(msoTextOrientationHorizontal, 10, 100, 300, 50)
ppTextbox1.TextFrame.TextRange.Text = Beschreibung
Set ppTextbox1 = PPPres.Shapes.AddTextbox(msoTextOrientationHorizontal, 10, 150, 300, 50)
ppTextbox1.TextFrame.TextRange.Text = Dimension
End With
Next i
End Sub
Das Öffnen der Datei funktioniert einwandfrei. Die Folie 1 erscheint und dann passiert nichts mehr.
Wenn ich VBA-Editor aufrufe, ist das Macro bei "SlideCount = PPPres.Slides.Count" stehen geblieben mit einem Laufzeitfehler 424 "Objekt erfolrderlich".
Was mache ich nur falsch?
Besten Dank für Eure Inputs!
Gruss
Kurt