J'ai une macro qui ouvre un fichier PowerPoint stockées sur le classeur et modifie ensuite à l'aide du code ci-dessousConversion fichier PPT en PDF
Set PApp = CreateObject("PowerPoint.Application")
PApp.Visible = True
Pth = ThisWorkbook.Path
ErrorPopUp = True
Dim TsyTemplate As Object
Set TsyTemplate = ThisWorkbook.Sheets("Report Templates").OLEObjects(“Report 1”)
TsyTemplate.Copy
Sheets("Version Control").Paste
Set TsyTemplate = ThisWorkbook.Sheets("Book 1").OLEObjects(1)
TsyTemplate.Verb Verb:=xlOpen
Set TsyTemplate = Nothing
Set PPres = PApp.ActivePresentation
Cela fonctionne bien mais je veux ajouter un peu de code qui convertit ensuite la ouvrir le fichier PowerPoint dans un fichier PDF. Je préférerais convertir juste sans l'enregistrer quelque part, mais je ne crois pas que ce soit possible, donc je suis en utilisant le code ci-dessous pour qu'il l'enregistrer comme un fichier PDF
PDFName = ActiveWorkbook.Path & "/test.pdf"
PPres.ExportAsFixedFormat Path:=PDFName, FixedFormatType:=ppFixedFormatTypePDF, RangeType:=ppPrintSelection
Ce ne fonctionne pas bien que je obtenir le message d'erreur "incompatibilité de type"
Est-ce que quelqu'un a des suggestions sur ce que je fais mal.
Merci
code complet:
Global PApp As Object
Global PPres As Object
Global PPTFileName As String
Global ppFixedFormatTypePDF As Long
Global ppPrintSelection As Long
Sous Test_Printing_To_PDF()
Set PApp = CreateObject("PowerPoint.Application")
PApp.Visible = True
Pth = ThisWorkbook.Path
ErrorPopUp = True
Dim TsyTemplate As Object
Set TsyTemplate = ThisWorkbook.Sheets("Report Templates").OLEObjects("Report 1")
TsyTemplate.Copy
Sheets("Version Control").Paste
Set TsyTemplate = ThisWorkbook.Sheets("Version Control").OLEObjects(1)
TsyTemplate.Verb Verb:=xlOpen
Set TsyTemplate = Nothing
Set PPres = PApp.ActivePresentation
PPres.Slides(1).Shapes("Presentation_Title").TextFrame.TextRange.Text = "Test printing code"
ppFixedFormatTypePDF = 2
ppPrintSelection = 2
PDFName = ActiveWorkbook.Path & "/test.pdf"
PPres.ExportAsFixedFormat Path:=PDFName, FixedFormatType:=ppFixedFormatTypePDF, RangeType:=ppPrintSelection
End Sub
Où vous DIM vos variables et qu'avez-vous DIMmed PPres comme? Alsol ppFixedFormatTypePDF et ppPrintSelection sont des constantes PPT, non définies dans Excel, donc vous devrez les définir (à la fois comme Longs = 2) –
Salut Steve. Les variables sont définies ailleurs dans le module. Ppres est défini comme objet. Je n'avais pas défini les 2 autres donc l'ai fait (en tant que longs et = 2) mais je reçois toujours le message de type incompatibilité –
Sur quelle ligne l'erreur se produit-elle? FWIW, La partie exportation PDF de votre code fonctionne comme prévu dans PowerPoint avec seulement quelques mods pour s'adapter au fait que je l'ai exécuté dans PPT. Mais vous définissez PPres à la présentation active, mais y a-t-il une présentation active? Vous n'avez pas encore ouvert ou ajouté de diapositives à la présentation par défaut, alors qu'essayez-vous exactement d'exporter au format PDF? –