Registriert seit: 17.07.2020
Version(en): 2013
Guten Abend zusammen,
ist es möglich, via VBA in Excel eine Powerpointdatei zu erstellen, wo Folie1 ein Picture von Sheet1 ist, Folie2 ein Picture von Sheet2 usw.?
Registriert seit: 10.04.2014
Version(en): Microsoft 365, mtl. Kanal
Hallo,
ich denke nicht, dass du mit Excel eine ppt-Datei erstellen kannst. Wäre das Gleiche, wenn man mit Word eine Excel-Datei erstellen wollte. Aber vllt. ist es das, was du willst:
https://www.google.com/search?client=firefox-b-d&q=excel+tabellenblatt+in+powerpoint+einbetten
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Registriert seit: 17.07.2020
Version(en): 2013
14.04.2021, 18:47
(Dieser Beitrag wurde zuletzt bearbeitet: 14.04.2021, 20:55 von WillWissen.
Bearbeitungsgrund: Codetags korrigiert
)
Hallo Günter,
Möglich ist das schon.
Also bisher hab ich gefunden wie aus VBA eine leere Powerpointdatei mit 3 Folien zu erstellen und automatisch abzuspeichern.
Und ich kann einen selektierten Bereich als Picture in eine neue Powerpointdatei kopieren.
Aber ich bekomme beides nicht so zusammen das eine Datei erstellt wird, die 3 folien mit sheet1-3 beschrieben uind dann gespeichert wird.
Hier beide Makros
Huch, warum wird der Code den hier in einzelne Zeilen zerlegt OoCode:
Sub ExcelToNewPowerPoint()
Dim PPApp As PowerPoint.Application
Dim PPPres As PowerPoint.Presentation
Dim PPSlide As PowerPoint.Slide
' Create instance of PowerPoint
Set PPApp = CreateObject("Powerpoint.Application")
' For automation to work, PowerPoint must be visible
' (alternatively, other extraordinary measures must be taken)
PPApp.Visible = True
' Create a presentation
Set PPPres = PPApp.Presentations.Add
' Some PowerPoint actions work best in normal slide view
PPApp.ActiveWindow.ViewType = ppViewSlide
' Add first slide to presentation
Set PPSlide = PPPres.Slides.Add(1, ppLayoutTitleOnly)
Set PPSlide = PPPres.Slides.Add(1, ppLayoutTitleOnly)
Set PPSlide = PPPres.Slides.Add(1, ppLayoutTitleOnly)
''---------------------
'' Do Some Stuff Here
''---------------------
' Save and close presentation
With PPPres
.SaveAs "C:\MyPreso.ppt"
.Close
End With
' Quit PowerPoint
PPApp.Quit
' Clean up
Set PPSlide = Nothing
Set PPPres = Nothing
Set PPApp = Nothing
End Sub
Code:
Sub RangeToPresentation()
' Set a VBE reference to Microsoft Excel Object Library
Dim XLApp As Excel.Application
Dim PPSlide As Slide
' Reference existing instance of Excel
Set XLApp = GetObject(, "Excel.Application")
' Make sure a range is selected
If Not TypeName(XLApp.Selection) = "Range" Then
MsgBox "Please select a worksheet range and try again.", _
vbExclamation, "No Range Selected"
Else
' Can only paste into slide view
Application.ActiveWindow.ViewType = ppViewSlide
' Reference active slide
Set PPSlide = ActivePresentation.Slides _
(Application.ActiveWindow.Selection.SlideRange.SlideIndex)
' Copy the range as a piicture
XLApp.Selection.CopyPicture Appearance:=xlScreen, _
Format:=xlPicture
' Paste the range
PPSlide.Shapes.Paste.Select
' Align the pasted range
Application.ActiveWindow.Selection.ShapeRange.Align msoAlignCenters, True
Application.ActiveWindow.Selection.ShapeRange.Align msoAlignMiddles, True
' Clean up
Set PPSlide = Nothing
End If
Set XLApp = Nothing
End Sub
00202
Nicht registrierter Gast
Hallo,
hier eine
Beispieldatei bei der folgendes gemacht wird (
damit siehst du das Prinzip):
[attachment=38295]
- Power Point wird gestartet.
- Je Diagramm aus Excel wird eine neue leere Folie erstellt.
- Jedes Diagramm wird als Bild auf eine Folie kopiert,
- Die Diagramme werden platziert und in der Größe angepasst.
- Die Datei wird im gleichen Verzeichnis wie die Excekdatei gespeichert.
- Abschließend wird die Power Point-Datei geschlossen.
Mach was draus.