ich habe ein Problem das mich schon des längeren nervt. Meine Ideen helfen mir nicht mehr weiter und ehrlich gesagt weiß ich auch nicht was ich noch ausprobieren könnte...
Ich habe eine PPT-Datei mit vielen Pivot-Charts die automatisch aktualisiert werden. Da dies an die 200 Grafiken sind lasse ich die Excel-Files (sind 5 and der Zahl) mit einem Makro über PPT einmalig öffnen dann braucht PPT nämlich nicht so lange zum Aktualisieren (mit öffnen 2min, ohne öffnen 13min).
Jetzt möchte ich, dass nach der Aktualsierung die Excelfiles auch wieder geschlossen werden. Das bekomme ich alles hin aber leider fragt mich Excel dann ob ich speichern möchte und das bekomme ich einfach nicht weg. Egal ob ich ThisWorkbook.Saved=False oder Application.DisplayAlerts = False verwende ich bekomme es einfach nicht hin.
Könnt ihr mir da weiterhelfen?
Der Code sieht wie folgt aus (verkürzte Version mit nur einem Excel das geöffnet wird):
Sub Excelfiles_öffnenundaktualisieren()
' gewisse Files öffnen
Dim ExcelSheet As Object
Set ExcelSheet = CreateObject("Excel.Application")
ExcelSheet.Application.Visible = False
ExcelSheet.Application.Workbooks.Open FileName:=ActivePresentation.Path & "\rev1.xlsm", _
UpdateLinks _
:=0
' alle Diagramme aktualisieren
Dim PPT_1 As PowerPoint.Application
Set PPT_1 = CreateObject("Powerpoint.Application")
Dim PPT As PowerPoint.Presentation
Set PPT = PPT_1.ActivePresentation
Dim i As Long
Dim s As Long
For i = 1 To PPT.Slides.Count
For s = 1 To PPT.Slides(i).Shapes.Count
If PPT.Slides(i).Shapes(s).Type = msoLinkedOLEObject Then
PPT.Slides(i).Shapes(s).LinkFormat.AutoUpdate = ppUpdateOptionAutomatic
End If
Next s
Next i
PPT.UpdateLinks
For i = 1 To PPT.Slides.Count
For s = 1 To PPT.Slides(i).Shapes.Count
If PPT.Slides(i).Shapes(s).Type = msoLinkedOLEObject Then
PPT.Slides(i).Shapes(s).LinkFormat.AutoUpdate = ppUpdateOptionManual
End If
Next s
Next i
' Mistding schließen
ExcelSheet.Application.Quit
End Sub