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

Mit Excel-Makro Textfeld in PP ansteuern

Mit Excel-Makro Textfeld in PP ansteuern
16.03.2020 13:46:00
HerrVorragend
Hallo ihr Lieben,
ich brauche mal wieder Hilfe bezüglich eines Excel Makros. Ich möchte aus Excel heraus eine _
PowerPoint erstellen und mit Inhalten befüllen. Zum Einen sollen Tabellen aus Excel auf PP- _ Folien übertragen werden (Das klappt schon ganz gut :) ). Zum Anderen sollen einzelne Inhalte aus Zellen in Excel ausgelesen und in bestimmt Textfelder in PP übertragen werden. Mein Problem ist, dass ich in PP nicht die bestimmten Textfelder ("Titelbox1", "Textplatzhalter1") ansprechen kann. Da bekomme ich immer die Fehlermeldung : Laufzeitfehler 5, Ungültiger Prozeduraufruf oder ungültiges Argument. Habe schon alles probiert und hoffe mir kann jemand helfen.

Sub CreatePowerPoint()
Dim oPPT As PowerPoint.Application
Dim oSlide As PowerPoint.Slide
Dim oPres As PowerPoint.Presentation
Dim oShape As Shape
Dim Filter As Range
Dim y As Integer ' für Autofilter
Dim i As Integer
Dim Pfad As String
Dim ppTLayout As CustomLayout
Dim shp As Shape
y = 1
i = 2
'PP-Vorlage öffnen
Set oPPT = New PowerPoint.Application
oPPT.Visible = msoTrue 'oder True
oPPT.Presentations.Open "C:\Users\SimeonPawelka\Desktop\MAPS VBA\Vorlage.potm"
'Titelfoto bearbeiten
Set oSlide = oPPT.ActivePresentation.Slides(1)
oSlide.Shapes("Titelbox") = Sheets("Overview").Cells("A3")
Set oSlide = oPPT.ActivePresentation.Slides(1)
oSlide.Shapes("Textplatzhalter1") = Sheets("Overview").Cells("A3")
------------------------------------------------------------------------------------------------ _
_
_
_
'----------------------------------------------------------------------------------------------- _
_
_
_
For y = 1 To 11
Set Filter = Sheets("Export Arbeitspakete").Range("TabExportAP")
Filter.AutoFilter Field:=1, Criteria1:=y '---> Schleife einbauen für Kriterium, dann wird Range  _
_
_
_
nach Autofilter kopiert
Set ppTLayout = oPPT.ActivePresentation.Slides(2).CustomLayout ' --> definiert die Form der  _
Folie, in welcher die nächste eingefügt werden soll
Set oSlide = oPPT.ActivePresentation.Slides.AddSlide(i, ppTLayout)  '--> um neue Folie hinzuzufü _
_
_
_
gen
'Tabellen werden eingefügt
Set oSlide = oPPT.ActivePresentation.Slides(i) 'Foliennummer wird ausgewählt
Sheets("Export Arbeitspakete").Range("TabExportAP").Copy 'Der Bereich der in Excel kopiert  _
werden soll
oSlide.Shapes.Paste 'Bereich wird auf ausgewählter Folie eingefügt
Filter.AutoFilter Field:=1
'Folienüberschriften werden generiert
Set oSlide = oPPT.ActivePresentation.Slides(i)
oSlide.Shapes.Range.TextFrame.TextRange.Text = Sheets("Export Inhaltsverzeichnis").Cells(i, 2).  _
_
_
_
Text
i = i + 1
Next
Set oPPT = Nothing
End Sub

Vielen Dank im Voraus und schöne Grüße

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

Betreff
Datum
Anwender
Anzeige
AW: Mit Excel-Makro Textfeld in PP ansteuern
16.03.2020 14:55:54
volti
Hallo Herr Vorragend,
ohne dass jetzt irgendwie weiter durchleuchtet zu haben, geht es um diese Zeile hier?
oSlide.Shapes.Range.TextFrame.TextRange.Text = Sheets("Export Inhaltsverzeichnis").Cells(i, 2).Text
Da fällt mir nur zu ein, dass wenn Du ein Objekt ansprechen möchtest, Du den entsprechenden Namen dazu brauchst. Den kann ich in dem o.a. code nicht erkennen.
Ich würde das jetzt eher so machen (ungetestet), wobei "Name" entweder der interne Name des Objektes von PPt ist (z.B. Text 31) oder ein von Dir individuell vergebener Name.
oSlide.Shapes(Name).TextFrame.TextRange.Text=Sheets("Export Inhaltsverzeichnis").Cells(i, 2).Text
Ansonsten bleibt nur noch die Möglichkeit, alle Objekte durchzuscannen und das gewünschte anhand irgeneines Kriteriums rauszufischen.
viele Grüße
Karl-Heinz
Anzeige
AW: Mit Excel-Makro Textfeld in PP ansteuern
17.03.2020 08:52:52
HerrVorragend
Hallo Karl-Heinz, Danke für die schnelle Antwort. Ich hätte vielleicht erwähnen sollen, dass die Fehlermeldung schon bei Zeile
oSlide.Shapes("Titelbox") = Sheets("Overview").Cells("A3")
kommt. Ich kann somit nicht das Shape "Titelbox" auf der Folie ansprechen.
Viele Grüße
AW: Mit Excel-Makro Textfeld in PP ansteuern
17.03.2020 09:20:26
volti
Hallo,
m.E. gilt dann doch hier das gleiche. Du hast hier zwar den Namen aber unvollständigen Code:
(probier mal.. ist aber ungetestet)
oSlide.Shapes("Titelbox").TextFrame.TextRange.Text=Sheets("Overview").Cells("A3").Value
Und hier noch, falls Du es brauchen kannst, eine kleine Routine zur Ermittlung des Namens eines markierten Objektes in PPt:
Sub GetPPtObjectName()
'Ermittelt den Namen des gerade selektierten Objektes in PowerPoint
 Dim pptApp As Object
 Set pptApp = GetObject(, "PowerPoint.Application") 'geöffnete PPt ansprechen
 If pptApp Is Nothing Then
    Set pptApp = CreateObject("PowerPoint.Application")
 End If
 If Not pptApp Is Nothing Then
   MsgBox pptApp.ActiveWindow.Selection.ShapeRange.Name
 End If
 Set pptApp = Nothing
End Sub

viele Grüße
Karl-Heinz

Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige