Bonjour à tous,
J'ai fait une programmation VBA dans MS Project pour l'entreprise où je travail. Ma programmation me permettait de faire une copie du MS Project pour publication au client en retirant certaines information inutile pour mon client. Je dois faire une impression PDF de l'échéancier comme ce n'est pas tous les client qui comprenne comment fonctionne MS Project.
Après plusieurs essais, la seule façon qui fonctionnait était de faire une appel à la fonction FileSaveAs sans spécifier d'information à la sauvegarde. Ceci ouvrait la fenêtre "Enregistré sous" et permettait de sélectionner le format PDF manuellement. C'était évidemment une solution temporaire qui fonctionnait mais si l'on oubliait de modifier le format, nous nous retrouvions avec 2 copies .MPP se qui était inutile.
Malheureusement, depuis la dernière mise-à-jour de MS Project, il semble que nous ne puissions plus faire une sauvegarde au format PDF depuis MS Project. Même en faisant toutes les opérations manuellement, aucune copie PDF ne se forme. Toujours manuellement, il semble que la seule manière de publier un échéancier en PDF est avec un imprimante virtuelle créant un PDF, comme CutePDF par exemple.
J'ai donc chercher plusieurs solution pour compléter ma programmation de publication automatique mais sans résultat. Voici plusieurs essai que j'ai fait qui n'ont pas porté fruit :
- FileSaveAs Name:=ThisProject.Path & "\" & nom_modifie & ".pdf" (je précise ".pdf" à la fin car le format PDF n'est pas admissible dans la fonction FileSaveAs)
- DocumentExport ThisProject.Path & "\" & nom_modifie (DocumentExport est fait pour exporter en PDF selon Office mais ça ne marche pas même si je précise)
- FilePrintSetup ("CutePDF Writer"); File Print (Mon programme se lance à la fermeture de MS Project. Je vois que MS Project se rend sur la page d'impression mais ferme avant de faire l'impression)
*Notez que nom_modifie est une variable transmise par une autre fonction qui ajoute la date devant le nom d'origine pour dater la version de l'échéancier.
Comme la dernière méthode semblait ne pas fonctionné car la programmation se terminait avant que l'imprimante virtuelle ne démarre, j'ai essayé d'utiliser une fonction comme Application.Wait mais il semble que ces fonction ne fonctionne pas non plus dans MS Project...
Je suis donc à cours d'idée et je ne trouve pas d'autres solutions sur internet. Merci à vous qui essayerez de m'aider!
Partager