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

Über VBA Powerpoint Datei speichern

Über VBA Powerpoint Datei speichern
22.07.2013 09:39:40
kultnoob
Hallo zusammen,
eine Excel-Datei zu öffnen und unter einem anderen Namen oder Pfad zu speichern bekomme ich hin.
Eine Powerpoint zu öffnen bekomme ich auch gebacken. Aber wie kann ich die Datei, innerhalb einer anderen/weiteren Prozedur (SUB) wieder speichern. Pfad ist gleich, nur der Dateiname ist anders.
"XY-Auswertung vom 22.07.2013" (aktuelles Datum halt)
wäre sinnvoll.
Warum?
Ich erstelle eine Auswertung. Komplett auf Makrobasis. Da ich gegenwärtig ein paar Problem mit Thinkcell habe muss ich ein Wasserfalldiagramm aktualisieren. Mir verheizt es immer die automatische Aktualsierung sobald ich eine neue Auswertung erstelle. Aber das ist hier nicht wichtig.
Jedenfalls wird das Wasserfalldiagramm noch händisch aktualisiert. Ebenso ein weiteres Kuchendiagramm. Nun habe ich einen Button innerhalb der Exceldatei, in welcher ich die Datei (Auswertung Excel) unter dem aktuellen Datum speichere.
Innerhalb dieser Prozedur möchte ich nun auch die Powerpoint Datei speichern. Nur wie?
Für Hilfe wäre ich sehr dankbar.

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Über VBA Powerpoint Datei speichern
22.07.2013 12:50:45
fcs
Hallo kultnoob,
das kannst du mit als Public deklarierten Objekt-Variablen lösen.
Beim der PP-Datei wird diese der Objektvariablen zugewiesen.
in der 2. Prozedur kannst du dann über diese Objektvariable auf die Präsentation zugreifen.
Gruß
Franz
Beispiel:
'Code in allgemeinem Excel-VBA-Modul
Option Explicit
'Public ppApp As PowerPoint.Application 'mit Verweis auf PowerPoint Object Library
Public ppApp As Object 'ohne Verweis auf PowerPoint Object Library
'Public ppPraes As PowerPoint.Presentation 'mit Verweis auf PowerPoint Object Library
Public ppPraes As Object 'ohne Verweis auf PowerPoint Object Library
Sub prcOpen_PP_Datei()
'Beispiel zum Öffnen der Powerpoint datei
Dim varFilename
Set ppApp = CreateObject("PowerPoint.Application")
With ppApp.FileDialog(msoFileDialogOpen)
.Title = "Bitte Powerpoint-Datei zur Exceldatei öffnen"
.FilterIndex = 2 'Powerpointdateien
If .Show = -1 Then
varFilename = .SelectedItems(1)
'PP Präsentation schreibgeschützt öffnen
Set ppPraes = ppApp.Presentations.Open(Filename:=varFilename, ReadOnly:=True)
End If
End With
End Sub
Sub prcClose_PP_Datei()
'PP Präsentation speichern unter und schliessen
If ppPraes Is Nothing Then
MsgBox "Es wurde keine PowerPoint-Präsentation geöffnet!"
Else
Dim lngFormat As Long, strNameNeu, strExt As String
strNameNeu = ppPraes.FullName 'aktueller Dateiname
strExt = Mid(strNameNeu, InStrRev(strNameNeu, "."))
'Datum und Dateiendung abschneiden
strNameNeu = Left(strNameNeu, InStrRev(strNameNeu, ".") - 11)
'aktuelles Datum und Dateiendung anfügen
strNameNeu = strNameNeu & Format(Date, "YYYY-MM-DD") & strExt
'    lngFormat = 24 'ppSaveAsOpenXMLPresentation 'pptx-Format
ppPraes.SaveAs Filename:=strNameNeu ', FileFormat:=lngFormat
ppPraes.Close
If ppApp.Presentations.Count = 0 Then ppApp.Quit
Set ppPraes = Nothing
Set ppApp = Nothing
End If
End Sub

Anzeige
AW: Über VBA Powerpoint Datei speichern
22.07.2013 13:07:31
kultnoob
Hi,
vielen Dank für die Hilfe und das Beispiel...
Habe auch etwas gefunden. Werde aber Deine Lösung noch testen.
Wer lange googelt, findet eine Lösung. Diese muss natürlich noch angepasst werden aber es funktioniert, FAST...
Anbei der Code.
[code]
Sub Speicherung()
Dim MSppt As Object
Set MSppt = CreateObject("PowerPoint.Application")
' Laden der Datei
With MSppt
.Visible = msoTrue
.Activate
'.Presentations.Open "falls man die Datei erst aufmachen möchte, PFAD und Dateiname im Beispiel  _
C:\test.pptx"
End With
name_pp_datei = "Speicherpfad" & "Name den mal will" & " " & FormatDateTime(Date, vbShortDate) & _
".pptx"
'Umspeichern der PP-Vorlage
With MSppt
.ActivePresentation.SaveAs name_pp_datei
.ActivePresentation.Close
End With
End Sub

[/code]
In meinem Beispiel ist die Datei bereits geöffnet. Während der Code durchläuft, wechselt er in meinem Beispiel das Fenster zu Powerpoint.
Das einzige was noch nicht passt ist, dass die PowerpointMaske also Powerpoint ohne Folien geöffnet bleibt. Ich teste, wie ich dies noch schließen kann.
Anzeige

34 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige