Comment créer des fichiers pdf par publipostage

Messages postés
12
Date d'inscription
mercredi 9 octobre 2019
Statut
Membre
Dernière intervention
6 décembre 2019
- - Dernière réponse : m@rina
Messages postés
15646
Date d'inscription
mardi 12 juin 2007
Statut
Non membre
Dernière intervention
6 décembre 2019
- 6 déc. 2019 à 18:56
Bonjour,

A partir d'un tableau Excel, je crée un fichier Word de n pages contenant n factures. Puis je divise ce fichier en n fichiers que j'enregistre au format pdf. Cette deuxième étape est assez longue. Est-il possible que mon publipostage créé automatiquement n fichiers (si possible directement en pdf) en leur donnant un nom que j'aurais prédéfini et placé dans une colonne du fichier Excel contenant les autres infos ?
J'ai trouvé des post sur le sujet mais cela ne correspondait jamais à mes besoins car il fallait passer par Outlook. Certains parlent de macro VBA, je vois ce que c'est, mais je ne maîtrise pas. Merci à vous.
Bonne journée.
Afficher la suite 

7 réponses

Meilleure réponse
Messages postés
15646
Date d'inscription
mardi 12 juin 2007
Statut
Non membre
Dernière intervention
6 décembre 2019
8842
1
Merci
J'ai créé une macro qui fait le travail, à savoir qui fait la fusion directement vers des fichiers PDF, en utilisant comme nom de fichier un champ de la base de données. Je l'ai mise ici :
http://www.faqword.com/index.php/word/publipostage/1075-publipostage-directement-vers-fichiers-pdf

m@rina

Dire « Merci » 1

Heureux de vous avoir aidé ! Vous nous appréciez ? Donnez votre avis sur nous ! Evaluez CommentCaMarche

CCM 63654 internautes nous ont dit merci ce mois-ci

DenisCooper
Messages postés
12
Date d'inscription
mercredi 9 octobre 2019
Statut
Membre
Dernière intervention
6 décembre 2019
-
Bonjour, merci pour ce retour rapide. Je vais essayer, même si je ne n'ai jamais utiliser de macros! Il n'y a pas de raison que je n'y arrive pas. Bonne journée.
Commenter la réponse de m@rina
Messages postés
15646
Date d'inscription
mardi 12 juin 2007
Statut
Non membre
Dernière intervention
6 décembre 2019
8842
0
Merci
Bonjour

Possible par macro.

Voici par exemple des macros qui convertissent un fichier de résultat Publipostage en autant de fichiers PDF correspondants.
http://faqword.com/index.php/word/divers/1035

Pour faire directement du pdf, voici une macro à personnaliser :
Cette macro imprime chaque document. Le PDF est une impression virtuelle, il suffirait donc de reprendre cette macro et d'utiliser une imprimante virtuelle comme PDF Creator (ou autre). Pour nommer les fichiers, il faudra récupérer non pas un mot dans chaque fichier, mais le résultat de ton champ. A tester.
http://faqword.com/index.php/word/publipostage/1074

A titre d'info, je ne vois pas ce que vient faire Outlook dans l'affaire…

m@rina
Commenter la réponse de m@rina
Messages postés
12
Date d'inscription
mercredi 9 octobre 2019
Statut
Membre
Dernière intervention
6 décembre 2019
0
Merci
Bonsoir,

J'ai bien récupéré le codage de la macro, mais ensuite, je ne sais si je l'ai bien utilisé !! J'ai créé une macro vierge sous Word et j'ai collé le code dedans , en précisant le chemin du répertoire ou je voudrais enregistrer les fichiers pdf créés et en précisant la colonne dans le fichier Excel où il faut prendre les noms des fichiers.
Mais en fait il ne se passe rien !!
m@rina
Messages postés
15646
Date d'inscription
mardi 12 juin 2007
Statut
Non membre
Dernière intervention
6 décembre 2019
8842 -
Et tu lances la macro comment ?
J'explique ici :
http://faqword.com/index.php/generalites-office/615-le-b-a-ba-du-vba#forum

m@rina
Commenter la réponse de DenisCooper
Messages postés
12
Date d'inscription
mercredi 9 octobre 2019
Statut
Membre
Dernière intervention
6 décembre 2019
0
Merci
Bonjour,

J'ai suivi la procédure pour créer la macro. Mais ensuite c'est mon publipostage qui ne fonctionne plus. Quand j'arrive à la dernière étape pour valider la fusion de toutes les lettres créées, j'ai un message d'erreur indiquant que la fusion est impossible car les fichiers sont vides !

Si je supprime la macro et que je recommence le publipostage, tout fonctionne. Donc la macro vient perturber le publipostage, alors que je ne demande pas son exécution.

Il y a un point que je ne comprends pas : en théorie quand faut-il exécuter cette macro ? Après le publipostage quand le fichier word avec les n documents est créé ? Dans la macro, j'ai bien précisé l'emplacement où enregistrer les fichiers créés et j'a défini le champ contenant les nom de fichiers. Mais à aucun moment je n'indique le chemin du fichier Excel contenant les champs avec les données. Comment la macro peut-elle trouver ce fichier Excel, si je n'indique pas le chemin ?
Merci.
m@rina
Messages postés
15646
Date d'inscription
mardi 12 juin 2007
Statut
Non membre
Dernière intervention
6 décembre 2019
8842 -
Bonjour,

Une macro qu'on ne lance pas ne peut pas perturber quoi que ce soit.
La macro que je t'ai donnée accomplit le publipostage.
Donc, tu n'as rien à faire, en dehors de lancer la macro depuis ton fichier principal de publipostage Word.

Tu peux faire un test avec quelques enregistrements. Pour cela tu changes la ligne
For x = 0 To nb - 1

par
For x = 0 To 3


Et bien sûr tu n'as pas à indiquer le chemin du fichier Excel dans la macro puisque ce fichier Excel est déjà lié dans le document principal de publipostage.

m@rina
Commenter la réponse de DenisCooper
Messages postés
12
Date d'inscription
mercredi 9 octobre 2019
Statut
Membre
Dernière intervention
6 décembre 2019
0
Merci
J'ai réinstallé la macro et je l'ai exécutée, mais j'arrive à une fenêtre "Microsoft Visual Basic pour Application" avec ce message : "Le membre de la collection requis n'existe pas"
Je clique alors sur OK, et la fenêtre se ferme mais il ne se passe rien.
m@rina
Messages postés
15646
Date d'inscription
mardi 12 juin 2007
Statut
Non membre
Dernière intervention
6 décembre 2019
8842 -
L'erreur se passe sur quelle ligne ?
La macro se trouve où ?
Elle doit être exécutée lorsque le document principal de fusion est le document actif.
Commenter la réponse de DenisCooper
Messages postés
12
Date d'inscription
mercredi 9 octobre 2019
Statut
Membre
Dernière intervention
6 décembre 2019
0
Merci
L'erreur se passe à la ligne : nom = .DataSource.DataFields("Nom pdf")

Par contre, je ne comprends pas la question suivante. j'ai ouvert mon fichier word qui me sert habituellement de modèle et j'ai placé la macro dans ce fichier avec les touches alt + F11. Je n'ai aucun autre document word ouvert.
m@rina
Messages postés
15646
Date d'inscription
mardi 12 juin 2007
Statut
Non membre
Dernière intervention
6 décembre 2019
8842 -
La macro bute donc sur le nom du champ qu'il ne reconnaît pas. Ce n'est jamais conseillé de mettre des noms de champs avec des espaces. Normalement Word remplace ces espaces par des underscores.
Regarde dans la liste "Insérer un champ de fusion" sous l'onglet Publipostage et mets exactement le nom du champ indiqué dans cette liste. A mon avis, c'est probablement Nom_pdf.
Commenter la réponse de DenisCooper
Messages postés
12
Date d'inscription
mercredi 9 octobre 2019
Statut
Membre
Dernière intervention
6 décembre 2019
0
Merci
Bonjour,
J'ai modifié le nom du champ qui est devenu nom_pdf (c'est le concatener du numéro de facture et du nom du destinataire), j'ai aussi essayé directement avec un autre champ number correspondant au numéro de la facture seul. Dans les deux cas, la macro s’arrête à la ligne '.Execute' qui est surlignée en jaune
J'ai une fenêtre qui s'ouvre :

Microsoft Visual Basic

Erreur d'Execution '5631' :
Impossible de fusionner le document principal avec la source de données : les enregistrements étaient tous vides ou aucun enregistrement ne correspondait à vos options de requête.

Il y a 4 boutons : Continuer (en grisé inaccessible) / Fin / Débogage / Aide

J'ai aussi remarqué une chose : quand j'ouvre mon fichier modèle et que j'exécute le publipostage pas à pas, sur 2, 3 ou 4 noms, j'obtiens bien mon gros fichier word final à 2, 3 ou 4 pages. Mais si ensuite, j'effectue la macro, j'ai ce message d'erreur qui arrive. Je ferme cette fenêtre, mais à partir de là, je ne peux plus réaliser de publipostage car à la dernière étape j'ai le même message d'erreur évoquant les "enregistrements vides" qui apparaît au moment de faire la fusion. L’exécution de la macro a donc modifié quelques chose dans le publipostage en provoquant une erreur. Ensuite je ferme le fichier modèle, puis je l'ouvre à nouveau et le publipostage fonctionne normalement jusqu'à ce que j’exécute la macro.

Voilà la situation. Merci pour ton aide.
m@rina
Messages postés
15646
Date d'inscription
mardi 12 juin 2007
Statut
Non membre
Dernière intervention
6 décembre 2019
8842 -
Bonjour,

Je ne sais plus quoi te dire... Je ne connais pas ta base, ni ton fichier principal de fusion...
Par ailleurs, quand tu dis "quand j'ouvre mon fichier modèle et que j'exécute le publipostage pas à pas, sur 2, 3 ou 4 noms, j'obtiens bien mon gros fichier word final à 2, 3 ou 4 pages. Mais si ensuite, j'effectue la macro, ".... c'est normal, la macro EXECUTE le publipostage, donc il ne faut pas le lancer manuellement.

Donc, je déclare forfait !
m@rina
DenisCooper
Messages postés
12
Date d'inscription
mercredi 9 octobre 2019
Statut
Membre
Dernière intervention
6 décembre 2019
-
OK, merci quand même pour les tentatives. J'ai bien compris que la macro effectue le publipostage. Ma remarque indique que le publipostage fonctionne correctement en pas à pas, mais ne fonctionne pas avec la macro qui doit sans doute butter sur une erreur. Cette erreur reste ensuite en place puisque, à partir de là, le publipostage pas à pas ne peut plus aller au bout et provoque le même message d'erreur que la macro. Tant pis. Dommage que Word ne propose pas une solution toute faite, car quand je vois le nombre de gens dans mon cas sur Internet, cela en dépannerait plus d'un.Merci encore, désolé de t'avoir fait perdre du temps. Bonne journée
m@rina
Messages postés
15646
Date d'inscription
mardi 12 juin 2007
Statut
Non membre
Dernière intervention
6 décembre 2019
8842 -
J'ai pas perdu de temps, cette macro servira à coups sûrs.
Moi je l'ai testée à plusieurs reprises sans soucis, mais je ne connais pas tes documents, donc difficile de savoir où ça bloque…
A titre d'info, quand une macro se met en erreur, tant qu'on n'a pas debugué, plus rien ne fonctionne donc ce que tu dis est normal. Par ailleurs, la macro s'exécute sur le document actif. Si tu as commencé un publipostage manuel, le document actif n'est plus le bon.

m@rina
Commenter la réponse de DenisCooper