IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Word Discussion :

VBA pour imprimer et enregistrer en PDF avec nom de fichier composé de bookmarks [WD-2003]


Sujet :

VBA Word

  1. #1
    Membre à l'essai
    Femme Profil pro
    Responsable qualité
    Inscrit en
    Juin 2015
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 55
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Responsable qualité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2015
    Messages : 39
    Points : 21
    Points
    21
    Par défaut VBA pour imprimer et enregistrer en PDF avec nom de fichier composé de bookmarks
    Bonjour,
    J'aurai besoin de votre aide pour la macro ci-dessous sensée me donner une impression PDF + enregistrement dans un dossier avec un nom de fichier composé des données bookmarks de mon document, malheureusement celle-ci me renvoie :

    "Erreur d'execution '429' : Un composant ActiveX ne peut pas créer d'objet"

    Pourtant dans les références de VB, j'ai bien cocher :
    - "PDF Creator - Your Open Source PDF Creator "

    Voyez-vous une solution ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    Sub ToPdf()
     
    Set pdfjob = CreateObject("PDFCreator.clsPDFCreator")
     
    If ActiveDocument.Bookmarks.Exists("Titre") = True Then
    Else: MsgBox "Erreur, le signet titres n'existe pas", vbOKOnly, "Erreur"
    End If
     
    If ActiveDocument.Bookmarks.Exists("Code") = True Then
    Else: MsgBox "Erreur, le signet Code n'existe pas", vbOKOnly, "Erreur"
    End If
     
     
    'Avant : NomWord = ActiveDocument.Name
     
    NomWord = ActiveDocument.Bookmarks("Titre").Range.Text & "-" & ActiveDocument.Bookmarks("Code").Range.Text
    NomPdf = Left(NomWord, Len(NomWord) - 4) & ".pdf"
     
    With pdfjob
     
    If .cstart("/NoProcessingAtStartup") = False Then
     
    MsgBox "Can't initialize PDFCreator.", vbCritical + vbOKOnly, "PrtPDFCreator"
     
    Exit Sub
     
    End If
     
    .cOption("UseAutosave") = 1
    .cOption("UseAutosaveDirectory") = 1
    .cOption("AutosaveDirectory") = ActiveDocument.Path
    .cOption("AutosaveFilename") = NomPdf
    .cOption("AutosaveFormat") = 0
    .cClearCache
     
    End With
     
    Application.ActivePrinter = "PDFCreator"
    Application.ActiveDocument.PrintOut copies:=1
     
    Do Until pdfjob.cCountOfPrintjobs = 1
     
    DoEvents
     
    Loop
     
    pdfjob.cPrinterStop = False
     
     
    Do Until pdfjob.cCountOfPrintjobs = 0
     
    DoEvents
     
    Loop
     
    With pdfjob
     
    .cDefaultprinter = DefaultPrinter
    .cClearCache
    .cClose
     
    End With
     
    Set pdfjob = Nothing
     
    End Sub

    Merci par avance pour le temps consacré !

    Jane

  2. #2
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    Si tu as ajouté la bibliothèque à ton projet, pourquoi passes-tu par du LateBinding.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set pdfjob = CreateObject("PDFCreator.clsPDFCreator")
    Alors que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set PDFCreator1 = New clsPDFCreator
    serait plus judicieux.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  3. #3
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    J'ai lu à quelque part que les versions 2.quelque chose de PDF Creator ont du mal avec VBA ou que VBA a du mal avec les versions 2.quelque chose de PDF Creator

    Sinon, tu peux chercher les contributions de kiki29 avec les moteurs de recherche du forum. Il doit avoir tout essayé avec VBA et Acrobat ou PDF Creator.
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  4. #4
    Membre à l'essai
    Femme Profil pro
    Responsable qualité
    Inscrit en
    Juin 2015
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 55
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Responsable qualité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2015
    Messages : 39
    Points : 21
    Points
    21
    Par défaut Erreur de compilation : Type défini par l'utilisateur non défini
    Citation Envoyé par Heureux-oli Voir le message
    Salut,

    Si tu as ajouté la bibliothèque à ton projet, pourquoi passes-tu par du LateBinding.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set pdfjob = CreateObject("PDFCreator.clsPDFCreator")
    Alors que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set PDFCreator1 = New clsPDFCreator
    serait plus judicieux.
    Bonjour,
    Merci de votre réponse.
    J'ai remplacé le code comme indiqué mais l'exécution me renvoie "Erreur de compilation - Type défini par l'utilisateur non défini".
    Pardonnez mon ignorance... J'apprends seule Il y a sûrement un truc évident (une variable à définir ?) que je n'ai pas renseigné...

    Bonne journée !
    Jane

  5. #5
    Membre à l'essai
    Femme Profil pro
    Responsable qualité
    Inscrit en
    Juin 2015
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 55
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Responsable qualité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2015
    Messages : 39
    Points : 21
    Points
    21
    Par défaut PDFCreator 2.1.1
    Citation Envoyé par clementmarcotte Voir le message
    Bonjour,

    J'ai lu à quelque part que les versions 2.quelque chose de PDF Creator ont du mal avec VBA ou que VBA a du mal avec les versions 2.quelque chose de PDF Creator

    Sinon, tu peux chercher les contributions de kiki29 avec les moteurs de recherche du forum. Il doit avoir tout essayé avec VBA et Acrobat ou PDF Creator.
    Bonjour Clément,
    Ma version de PDF Creator est récente 2.1.1 effectivement. Y-a-t-il une relation ? Je vais aller chercher dans les messages de kiki29...
    Merci pour la piste...
    Bonne journée,

    Jane

  6. #6
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Salut, effectivement il faut rester avec la version 1.7.3

    Sinon pour naviguer dans le bazar il y a une liste des contributions et téléchargements

  7. #7
    Membre à l'essai
    Femme Profil pro
    Responsable qualité
    Inscrit en
    Juin 2015
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 55
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Responsable qualité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2015
    Messages : 39
    Points : 21
    Points
    21
    Par défaut Merci kiki29
    Citation Envoyé par kiki29 Voir le message
    Salut, effectivement il faut rester avec la version 1.7.3

    Sinon pour naviguer dans le bazar il y a une liste des contributions et téléchargements

    Re-bonjour Kiki29,
    La même macro faite pour Excel fonctionne très bien avec mon PDFCreator version 2.1 si maintenant je rétrograde ma version pour 1.7.3, à votre avis (ma question peut vous sembler stupide mais je suis très très débutante !!) est-ce que mes macros pour imprimer en pdf sous Excel continueront à fonctionner ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    Sub EnrPdfPlanAction()
     
    Dim CodeDoc As String
    Dim Nom As String
    Dim Mj As String
     
    CodeDoc = Range("F2").Value
    Nom = Range("C2").Value
    Mj = Range("H2").Value
     
     
     
    'Enregistrer en PDF sous MANUEL QUALITE\DOCUMENTS ACTIFS puis ouvrir PDF
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        CodeDoc & " - " & Nom & ".pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
        From:=1, To:=1, OpenAfterPublish:=True
    ChDir "C:\Documents and Settings\All Users\Documents\QUALITE\DOCUMENTATION SMQ\MANUEL QUALITE\DOCUMENTS ACTIFS"
     
     
    End Sub
    MERCI BEAUCOUP !
    Jane

  8. #8
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Salut, le code que tu donnes là est celui d'une version 2007 ou +, depuis la version 2007 SP2 le format pdf est inclus en natif dans Office, plus besoin de PDFCreator à moins de vouloir manipuler les fichiers pdf.

  9. #9
    Membre à l'essai
    Femme Profil pro
    Responsable qualité
    Inscrit en
    Juin 2015
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 55
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Responsable qualité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2015
    Messages : 39
    Points : 21
    Points
    21
    Par défaut Une dernière question....
    Citation Envoyé par kiki29 Voir le message
    Salut, le code que tu donnes là est celui d'une version 2007 ou +, depuis la version 2007 SP2 le format pdf est inclus en natif dans Office, plus besoin de PDFCreator à moins de vouloir manipuler les fichiers pdf.
    Est-il possible d'utiliser une macro comme celle-ci pour le même travail (enregistrement pdf avec nom de fichier contenu dans le document) mais sous Word... ce qui serait beaucoup plus simple...

    Après ça promis je ne vous dérange plus !

    Bon après-midi !
    Jane

  10. #10
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Re, bis repetita placent ...
    depuis la version 2007 SP2 le format pdf est inclus en natif dans Office, plus besoin de PDFCreator à moins de vouloir manipuler les fichiers pdf.

  11. #11
    Membre à l'essai
    Femme Profil pro
    Responsable qualité
    Inscrit en
    Juin 2015
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 55
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Responsable qualité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2015
    Messages : 39
    Points : 21
    Points
    21
    Par défaut Merci
    Citation Envoyé par kiki29 Voir le message
    Re, bis repetitita placent ...
    Merci

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 14
    Points : 11
    Points
    11
    Par défaut Rupture de compatibilité des objets de programmation avec la V2 de PDFCreator
    Citation Envoyé par Jane92 Voir le message
    Bonjour,
    Merci de votre réponse.
    J'ai remplacé le code comme indiqué mais l'exécution me renvoie "Erreur de compilation - Type défini par l'utilisateur non défini".
    Pardonnez mon ignorance... J'apprends seule Il y a sûrement un truc évident (une variable à définir ?) que je n'ai pas renseigné...

    Bonne journée !
    Jane
    Bonjour,
    Il faut vérifier la version du PDFCreator installé, en effet ce code n'est valable que pour les V1.7.3 et inférieures. La solution est de réinstaller une V1.7.3 en attendant de modifier la structure de la routine ... avec les nouveaux objets (clsPDFCreator n'existe plus en V2...

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 14
    Points : 11
    Points
    11
    Par défaut PDFCreator V2 : nouvelle bibliothèque
    Citation Envoyé par kiki29 Voir le message
    Salut, effectivement il faut rester avec la version 1.7.3

    Sinon pour naviguer dans le bazar il y a une liste des contributions et téléchargements
    Bonjour kiki29,
    En fait les contributions dont tu fais le lien donnent toujours des solutions avec l'ancienne bibliothèque. Qui va s'y coller pour redéfinir les routines pour la V2 ?
    Je pense qu'il y a matière, mais rien n'émerge sur le site.
    Merci à celui qui s'y plonge ...
    Nota : sur pdfforge il y a un vrai flou dans les réponses du développeur lui-même ...
    Frantz

  14. #14
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Salut, pas moi pour le moment : extrait de la doc de la version 2.1

    The COM interface still has beta status and it will change with the next releases. Once we have reached a stable state, we will start versioning the interface to provide backward compatibility.

  15. #15
    Membre à l'essai
    Femme Profil pro
    Responsable qualité
    Inscrit en
    Juin 2015
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 55
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Responsable qualité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2015
    Messages : 39
    Points : 21
    Points
    21
    Par défaut Merci
    Citation Envoyé par Frantz_B Voir le message
    Bonjour,
    Il faut vérifier la version du PDFCreator installé, en effet ce code n'est valable que pour les V1.7.3 et inférieures. La solution est de réinstaller une V1.7.3 en attendant de modifier la structure de la routine ... avec les nouveaux objets (clsPDFCreator n'existe plus en V2...
    Merci pour cette info Frantz !

  16. #16
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Bonjour Kiki29,

    j'aimerai utiliser l'exportation d'un fichier Excel en pdf depuis Excel, mais je ne peux pas verrouiller le PDF pour éviter une copie (photo) car dans mon PDF il y a des signatures.
    j'utilise pdfcreator 1.7.3, mais ma boite me demande de modifier pour utiliser la dernière 2.2.2.
    As tu une idée, un autre logiciel pour remplacer PDF Creator 1.7.3 par quelques choses de plus récent.
    Merci

  17. #17
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Salut, à partir d'Office 2007 SP2 le format PDF est inclus en natif dans Office, donc plus vraiment besoin de PDFCreator ou autre sauf si manipulation des fichiers PDF.

    Comme précisé plus haut l'interface COM n'est pas implémentée à ce jour avec la version 2.x et donc la possibilité de programmer en VBA ( tu peux le répéter à qui de droit dans ta boîte ).

    The COM interface still has beta status and it will change with the next releases. Once we have reached a stable state, we will start versioning the interface to provide backward compatibility.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] Macro enregistrement fichier excel en pdf avec nom variable
    Par catetesse dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 23/01/2018, 14h03
  2. [XL-2003] Macro pour imprimer en pdf avec nom de fichiers variables
    Par YoTaPi dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 10/07/2014, 18h50
  3. [WD-MAC 2004] VBA pour imprimer en PDF
    Par thais781 dans le forum VBA Word
    Réponses: 1
    Dernier message: 30/10/2013, 13h39
  4. faire un publipostage en PDF avec nom d'enregistrement
    Par Bernard67 dans le forum VBA Word
    Réponses: 31
    Dernier message: 01/02/2008, 20h51
  5. Réponses: 4
    Dernier message: 18/04/2007, 16h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo