Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Über VBA Powerpoint Datei speichern

Betrifft: Über VBA Powerpoint Datei speichern von: kultnoob
Geschrieben am: 22.07.2013 09:39:40

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.

  

Betrifft: AW: Über VBA Powerpoint Datei speichern von: fcs
Geschrieben am: 22.07.2013 12:50:45

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



  

Betrifft: AW: Über VBA Powerpoint Datei speichern von: kultnoob
Geschrieben am: 22.07.2013 13:07:31

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.


 

Beiträge aus den Excel-Beispielen zum Thema "Über VBA Powerpoint Datei speichern"