innerhalb meines Makros werden Daten von einer Excel via Think-Cell in PowerPoint übertragen und als PDF-Datei gespeichert. Eine Zeile, eine PDF. Läuft alles.
Nur habe ich ein Problem.
Aufgrund der Häufigkeit in welchem per Schleife (IF-Anweisung) Daten von Excel nach PowerPoint übertragen werden, bläht sich der Arbeitsspeicher auf. Nach einer Recherche im Task-Manager nimmt der Prozess PowerPoint stetig zu.
Mein Lösungsansatz sah vor, PowerPoint nach einer Anzahl von 50 PDF´s zu schließen, kurz zu warten bis der Arbeitsspeicher (Application.Wait (Now + TimeValue("0:00:05"))) wieder frei ist und dann PowerPoint wieder zu öffnen. Durch einen zu vollen Arbeitsspeicher wird der Rechner träge und PowerPoint inkl. Think-Cell verursachen Fehler, was zu einem Abbruch des Makros bei einer Ausführung führt.
Eine Variable zählt, wie viele Zeilen abgearbeitet sind und soll PowerPoint nach 50 PDF´s schließen.
Und hier liegt mein Problem. Mir gelingt es zwar, PowerPoint beim ersten mal zu öffnen und auch wieder zu schließen, aber ein erneutes Öffnen der Datei erzeugt die Fehlermeldung:
- Laufzeitfehler '462': Der Remote-Server-Computer existiert nicht oder ist nicht verfügbar.
Anbei ein paar Codesegmente...
Dim ppapp As PowerPoint.Application
Set ppapp = New PowerPoint.Application
'Variable a der Basisdatei in Sheets 1 zuordnen und Variable b Sheets 2 zuordnen ( _
Schreibarbeit sparen)
Set a = ActiveWorkbook.Sheets(1)
Set b = ActiveWorkbook.Sheets(2)
'Links können im zweiten Sheet / Tabelle2 angepasst werden --> danach werden die neuen _
Links an die Variablen Pfad1 und Pfad2 übergeben und es muss nichts innerhalb des Makros geändert werden
Pfad1 = b.Cells(40, 6).Value
Pfad2 = b.Cells(41, 6).Value
'Vorgefertigte PowerPoint unter dem angegebenen Pfad öffnen, damit die Werte gleich _
aktualisert werden können
ppapp.Presentations.Open Filename:=Pfad1
'Prüfen, ob der Zaehler größer 50 ist, damit ppapp geschlossen werden kann _
damit der Arbeitsspeicher entlastet wird
Zaehler = Zaehler + 1
If Zaehler > 50 Then
'Aktive Presentation ohne zu speichern schließen
Application.DisplayAlerts = False
ppapp.Quit
Application.DisplayAlerts = True
'Vorgefertigte PowerPoint unter dem angegebenen Pfad öffnen, damit die Werte _
gleich aktualisert werden können
ppapp.Presentations.Open Filename:=Pfad1
Zaehler = 1
End If
Wisst ihr, woran der Fehler liegt? Probleme mit der Deklaration von ppapp?Freue mich über jegliche Hilfe und bedanke mich im Voraus.
Gruß