Hallo Paul1,
danke für deine Mühe und entschuldige Bitte dass ich jetzt erst
antworte. Du hast mich leider falsch verstanden. Meine Tabelle soll
in eine neue Präsentation und nachdem ich mir deinen
aufgezeichneten Code angesehen habe, stellte ich auch fest dass
er nicht ganz wäre was ich wollte. Ich habe inzwischen mein
beschriebenes Problem gelöst dass die Präsentation nicht
gespeichert wurde. Hatte mich bei der String Variable für den
Dateipfad und Namen versehen.
Hier der funktionierende Code:
Set oPP = CreateObject("PowerPoint.Application")
oPP.Visible = True
oPP.presentations.Add
oPP.activepresentation.slides.Add 1, 12
Range(Cells(1, 1), Cells(anzRows, anzColumns)).Select
Application.CutCopyMode = False
Selection.CopyPicture Appearance:=xlPrinter
With oPP.activepresentation.slides(1).Shapes.Paste
.Align 4, True
.Align 1, True
Do While .Item(1).Height > 540.12
dblZoom = dblZoom + 0.02
.Item(1).ScaleHeight 1 - dblZoom, 1, 1
.Item(1).ScaleWidth 1 - dblZoom, 1, 1
Loop
dblZoom = 0
Do While .Item(1).Width > 720#
dblZoom = dblZoom + 0.02
.Item(1).ScaleHeight 0.9, 1, 1
.Item(1).ScaleWidth 0.9, 1, 1
Loop
End With
oPP.activepresentation.SaveAs (strFile)
oPP.Quit
Application.ScreenUpdating = True
AppActivate "Microsoft Excel"
Windows(fileName).Activate
Worksheets(sheetName).Cells(1, 1).Select
Der Teil meines Codes öffnet Powerpoint und kopiert eine Tabelle in
eine neue Präsentation auf eine leere Folie. Egal wie groß die
Tabelle ist, sie wird schrittweise um jeweils 2% verkleinert bis sie
auf die Folie passt. Dann wird die Tabelle gespeichert, Powerpoint
geschlossen und Excel in den Vordergrund geholt. Weil das leider
nicht immer einwandfrei funktioniert, stelle ich (danke Google) noch
eine Windows-Msgbox dar, die immer im Vordergrund ist. Und das
Beste ist, kein Nutzer meiner Tabelle muss vorher irgendeinen
Verweis zu Powerpoint in den Einstellungen machen.
Trotzdem nochmal Besten Dank!
Gruß,
critchm