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

Word Discussion :

Publipostage : Impression en PDF avec une page par fichier [WD-2007]


Sujet :

Word

  1. #21
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2012
    Messages : 30
    Points : 12
    Points
    12
    Par défaut
    Citation Envoyé par nesumi Voir le message
    J'avance petit à petit j'avance :

    Le message d'erreur n'apparait plus (je ne sais pas trop pourquoi mais bon... )

    Par contre il reste 2 petits soucis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     With ActiveDocument
            .SaveAs "K:\RH - Gestion du Personnel\Ordre de Mission\OM 2011 maj indémnités\OMPDF" & DocName & ".pdf"
            .Close
    Après l'éxécution de cette ligne de code, mon enregistrement est enregistré mais dans le dossier OM 2011 maj indémnités. il est nommé OMPDF + le nom donné plus haut dans le code et en .pdf.
    Don en fait il s'enregistre pas au bon endroit et en plus quand je vais pour ouvrir le fichier en pdf cela me donne le message d'erreur suivant :

    "Adobe reader n'a pas pu ouvrir le document car le type de fichier n'est pas pris en charge ou il est endommagé"

    Alors là du coup je sèche....
    Bonjour à vous,

    Je me permets de poster ici car je suis confronté au même problème, à savoir que les fichiers s'enregistrent bien au format .pdf mais qu'il faut les ouvrir avec word, Acrobat reader ne pouvant pas les lire !!

    Je suis sur Word 2007 et il est possible "d'enregistrer sous" au format .pdf.
    Est-ce qu'il faut ajouter quelquechose dans la macro d'origine ???

    Merci d'avance pour vos lumières ^^

  2. #22
    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,

    Je pense que la conversion n'a pas eu lieu.
    Word ne sais pas lire les PDF.
    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. #23
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2012
    Messages : 30
    Points : 12
    Points
    12
    Par défaut
    Citation Envoyé par Heureux-oli Voir le message
    Salut,

    Je pense que la conversion n'a pas eu lieu.
    Word ne sais pas lire les PDF.
    Coment faire alors ?? Et comment se fait-il que ça ait pu fonctionner pour nesumi...

    Je viens de trouver ce "bout de code" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    'Export du fichier actif en pdf
    ActiveDocument.ExportAsFixedFormat OutputFileName:=fichier, _
    ExportFormat:=wdExportFormatPDF, OpenAfterExport:=False
    Ca pourrait fonctionner ??

  4. #24
    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,

    Parce que c'est pas un SaveAs qui doit être utilisé, mais un Export.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    .ExportAsFixedFormat OutputFileName:= _
            nom_complet_fichier ("K:..." & docname & ".pdf"), ExportFormat:= _
            wdExportFormatPDF, OpenAfterExport:=True, OptimizeFor:= _
            wdExportOptimizeForPrint, Range:=wdExportAllDocument, from:=1, To:=1, _
            Item:=wdExportDocumentContent, IncludeDocProps:=True, KeepIRM:=True, _
            CreateBookmarks:=wdExportCreateNoBookmarks, DocStructureTags:=True, _
            BitmapMissingFonts:=True, UseISO19005_1:=False
    Le fait d'utiliser un SaveAs, on ne change que l'extention du fichier Word.
    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 !

  5. #25
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2012
    Messages : 30
    Points : 12
    Points
    12
    Par défaut
    J'ai trouvé la 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
    Sub Découpage()
    '
    ' Découpage Macro
     
    Dim iR As Integer
    Dim i As Integer
    Dim oDoc As Document
    Dim DocName As String
    Dim oDS As MailMergeDataSource
     
    ' Affectation des objets
    Set oDoc = ActiveDocument
    Set oDS = oDoc.MailMerge.DataSource
     
    iR = oDoc.MailMerge.DataSource.RecordCount
    Debug.Print iR
    For i = 1 To iR
        With oDoc.MailMerge
            'Définition du premier et dernier enregistrement
            .DataSource.FirstRecord = i
            .DataSource.LastRecord = i
            ' Envoi des données dans un nouveau document
            .Destination = wdSendToNewDocument
            ' Exécution du publipostage
            .Execute
            ' Actualisation de l'enregistrement pour la sauvegarde
            .DataSource.ActiveRecord = i
            'Utilisation de deux champs pour obtenir le nom du document
            DocName = "CRAC2011_" & .DataSource.DataFields(1).Value
            DocName = DocName & "_" & .DataSource.DataFields(2).Value
            Debug.Print DocName; i
        End With
        ' Sauvegarde du document publiposté
        With ActiveDocument
            .ExportAsFixedFormat "C:\Users\GD1067\Local\Professionnel\CRAC2011\Exportpdf\" & DocName & ".pdf", wdExportFormatPDF
            .Close False
        End With
    Next i
    End Sub

  6. #26
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2012
    Messages : 30
    Points : 12
    Points
    12
    Par défaut
    Merci pour l'edit ^^

    Sinon, juste pour peaufiner, j'ai un message d'erreur d'exécution 5631 à la fin de ma macro.

    Ne sachant pas comment intégrer la correction dans ma macro, si vous pouviez m'éclairer ???

    Merci d'avance ^^

  7. #27
    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,

    C'est pas un problème de macro si on suit ce que Microsoft explique mais un problème de donnée.
    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 !

  8. #28
    Candidat au Club
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2020
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2020
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par carden752 Voir le message
    Bonjour,
    Je déterre un vieux sujet, mais il est toujours d'actualité.
    Une remarque et une question par rapport aux lignes de code ci-dessous :
    La commande ActiveDocument.SaveAs nom_complet_fichier & DocName & ".pdf" enregistre un document word avec une extention pdf. Ce fichier ne peut pas s'ouvrir avec un lecteur pdf.
    La commande ActiveDocument.ExportAsFixedFormat résout ce problème mais en crée un autre : cette commande crée un nouveau document, l'exporte en pdf puis cherche à fermer ce document. Word demande alors s'il faut ou non enregistrer le fichier.
    Rajouter une commande close ne marche pas car le document est déjà fermé quand cette commande arrive.
    La seule parade que j'ai trouver est de mettre une commande ActiveDocument.SaveAs à la fin le commande ActiveDocument.ExportAsFixedFormat (entre UseIso19005 et .close), puis, après le End With une commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CreateObject("Scripting.FileSystemObject").GetFile(nom_complet_fichier & DocName & ".doc").Delete
    pour supprimer le document word créé. Cette façon de procéder n'est pas très propre.
    Quelqu'un sait il comment faire pour que à la fin de la commande ActiveDocument.ExportAsFixedFormat, Word ferme le document ouvert sans poser de question ?

  9. #29
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par JMM38 Voir le message
    Bonjour,

    Regardez ce billet pour voir s'il répond à votre problème : https://www.developpez.net/forums/d2...-probleme-vba/

  10. #30
    Candidat au Club
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2020
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2020
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Rien de tel que poser une question pour trouver la solution, donc :
    utiliser ActiveDocument.ExportAsFixedFormat et non ActiveDocument.SaveAs, cale permet de créer un fichier pdf et non un fichier word avec l'extension pdf
    puis tromper Word pour lui faire croire que le doc n'a pas été modifier avec la commande ActiveDocument.Saved = True => plus de question après chaque création de pdf
    pour être plus claire, voici le code modifié et testé :

    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
    Sub Publipost_exportmultiPdf()
    ' Déclaration des variables
    Dim iR As Integer
    Dim i As Integer
    Dim oDoc As Document
    Dim DocName As String
    Dim oDS As MailMergeDataSource
     
    ' Affectation des objets
    Set oDoc = ActiveDocument
    Set oDS = oDoc.MailMerge.DataSource
     
    iR = oDoc.MailMerge.DataSource.RecordCount
    Debug.Print iR
    For i = 1 To iR
        With oDoc.MailMerge
            'Définition du premier et dernier enregistrement
            .DataSource.FirstRecord = i
     
            .DataSource.LastRecord = i
            ' Envoi des données dans un nouveau document
            .Destination = wdSendToNewDocument
            ' Exécution du publipostage
            .Execute
            ' Actualisation de l'enregistrement pour la sauvegarde
            .DataSource.ActiveRecord = i
            'Utilisation de deux champs pour obtenir le nom du document
            DocName = .DataSource.DataFields(2).Value
            DocName = DocName & "_" & .DataSource.DataFields(3).Value
            Debug.Print DocName; i
        End With
        ' Sauvegarde du document publiposté
        With ActiveDocument
            .ExportAsFixedFormat OutputFileName:="chemin_complet_du_fichier" & DocName & ".pdf", _
                ExportFormat:=wdExportFormatPDF, _
                OpenAfterExport:=False ' inutile d'ouvrir le pdf après sa création
                ' dire à word que le doc est n'a pas été modifié dont pas la peine de le sauvegarder
                ActiveDocument.Saved = True
            .Close
        End With
    Next i
    End Sub

  11. #31
    Candidat au Club
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2020
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2020
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Bonjour,
    Effectivement, ça fonctionne aussi avec la commande ".Close savechanges:=wdDoNotSaveChanges", c'est même plus propre qu'avec ma solution.
    Merci.

    Citation Envoyé par Eric KERGRESSE Voir le message
    Bonjour,

    Regardez ce billet pour voir s'il répond à votre problème : https://www.developpez.net/forums/d2...-probleme-vba/

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Réponses: 0
    Dernier message: 17/07/2012, 14h41
  2. Lien pdf avec une page précise
    Par helene1976 dans le forum Beamer
    Réponses: 8
    Dernier message: 18/08/2011, 13h41
  3. [2.2.0] PDF avec une page blanche à la fin
    Par hornex dans le forum BIRT
    Réponses: 3
    Dernier message: 26/11/2009, 16h16
  4. Ouvrir un Pdf et afficher une page par son numero
    Par Souheil dans le forum VB 6 et antérieur
    Réponses: 0
    Dernier message: 16/09/2007, 19h35
  5. [W3C] Probleme avec un pdf dans une page
    Par mael94420 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 14/09/2006, 11h09

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