Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Daten von XLS nach PPT in neue Folie kopi

Forumthread: Daten von XLS nach PPT in neue Folie kopi

Daten von XLS nach PPT in neue Folie kopi
XLS
Hallo Community
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

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Daten von XLS nach PPT in neue Folie kopi
16.04.2007 19:27:37
XLS
Hallo Kurt,
deine Präsentation heißt PPApp nicht PPPres............
Micha

AW: Daten von XLS nach PPT in neue Folie kopi
XLS
Hallo Micha
Wenn ich dich richtig verstanden habe, muss ich bei den ersten beiden Zeilen im Absatz "Neue Folie hinzufügen..." PPPres durch PPApp ersetzten, oder?
Dennoch bleibt das Markro an der gleichen Stelle hängen mit einer "Laufzeitfehler 438, Objekt unterstützt diese Eigenschaft nicht"-Fehlermeldung.
Hast Du noch eine andere gute Idee?
Gruss
Kurt

Anzeige
AW: Daten von XLS nach PPT in neue Folie kopi
19.04.2007 17:39:00
XLS
Hallo Kurt,

Sub Slides_erstellen()
'Vorbereitete PPT-Datei öffnen
Dim PPSlid As Slide
Dim my_press As Presentation
Set PPApp = CreateObject("Powerpoint.Application")
PPApp.Visible = True
Set my_press = PPApp.Presentations.Open(Filename:="H:\test.ppt") 'MIT DEINEM PFAD ERSETZEN
'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 = my_press.Slides.Count
Set ppSlide = my_press.Slides.Add(2, ppLayoutBlank)
'Set PPSlide = my_press.Slides.Add(SlideCount, ppLayoutBlank)
'my_press.ActiveWindow.View.GotoSlide ppSlide.SlideIndex
With ppSlide
'Textfelder hinzufügen und mit Inhalt aus Excel-Tabelle abfüllen
Set ppTextbox1 = ppSlide.Shapes.AddTextbox(msoTextOrientationHorizontal, 10, 10, 300, 50)
ppTextbox1.TextFrame.TextRange.Text = KPI_ID
Set ppTextbox1 = ppSlide.Shapes.AddTextbox(msoTextOrientationHorizontal, 10, 50, 300, 50)
ppTextbox1.TextFrame.TextRange.Text = KPI
Set ppTextbox1 = ppSlide.Shapes.AddTextbox(msoTextOrientationHorizontal, 10, 100, 300, 50) _
ppTextbox1.TextFrame.TextRange.Text = Beschreibung
Set ppTextbox1 = ppSlide.Shapes.AddTextbox(msoTextOrientationHorizontal, 10, 150, 300, 50) _
ppTextbox1.TextFrame.TextRange.Text = Dimension
End With
Next i
End Sub


xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
so geht es
micha

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige