Publipostage macro Word to PDF à partir d'un excel DDE
Fermé
khazak
-
4 févr. 2022 à 09:39
m@rina Messages postés 21201 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 21 décembre 2024 - 10 févr. 2022 à 23:09
m@rina Messages postés 21201 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 21 décembre 2024 - 10 févr. 2022 à 23:09
A voir également:
- Macro publipostage pdf
- Lire le coran en français pdf - Télécharger - Histoire & Religion
- Publipostage mail - Accueil - Word
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Comment faire un pdf - Guide
- Save as pdf - Télécharger - Bureautique
14 réponses
m@rina
Messages postés
21201
Date d'inscription
mardi 12 juin 2007
Statut
Contributeur
Dernière intervention
21 décembre 2024
11 370
4 févr. 2022 à 15:56
4 févr. 2022 à 15:56
Bonjour
Je pense que c'est une histoire de >Activedocument qui change.
Essaie cette macro :
https://faqword.com/index.php/word/19-publipostage/1075-publipostage-directement-vers-fichiers-pdf
m@rina
Je pense que c'est une histoire de >Activedocument qui change.
Essaie cette macro :
https://faqword.com/index.php/word/19-publipostage/1075-publipostage-directement-vers-fichiers-pdf
m@rina
m@rina
Messages postés
21201
Date d'inscription
mardi 12 juin 2007
Statut
Contributeur
Dernière intervention
21 décembre 2024
11 370
6 févr. 2022 à 21:58
6 févr. 2022 à 21:58
Tu exécutes la macro à quel moment ? et où se trouve la macro ?
m@rina
m@rina
Je prends mon doc word, publipostage>je selectionne mon fichier excel en DDE.
Tout marche, ça change bien mes champs de fusion.
J'ouvre Développeur => visual basic => importer un fichier j'ajoute la macro. Je change le chemin d'enregistrement et je remplace "Nom" pour le premier champ que j'ai mis soit "Nom du Fichier" => je ferme
J'appuie sur Macros, je sélectionne publipostage puis exécuter. Et rien ne se passe.
Tout marche, ça change bien mes champs de fusion.
J'ouvre Développeur => visual basic => importer un fichier j'ajoute la macro. Je change le chemin d'enregistrement et je remplace "Nom" pour le premier champ que j'ai mis soit "Nom du Fichier" => je ferme
J'appuie sur Macros, je sélectionne publipostage puis exécuter. Et rien ne se passe.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
m@rina
Messages postés
21201
Date d'inscription
mardi 12 juin 2007
Statut
Contributeur
Dernière intervention
21 décembre 2024
11 370
7 févr. 2022 à 15:37
7 févr. 2022 à 15:37
Bonjour,
Désolée, mais je n'ai pas tout compris...
Quand tu dis "Importer un fichier j'ajoute la macro", ça veut dire quoi ??
On importe un fichier macro si on a un fichier macro, en particulier avec une extension BAS. Cela aurait signifié que moi ou quelqu'un d'autre aurions exporté cette macro avec cette extension. On peut aussi, via le bloc note l'enregistrer en BAS.
Or, a priori tu n'as pas de fichier BAS, tu dois donc simplement copier la macro comme un texte et la coller dans un module de ton document de publipostage Word.
m@rina
Désolée, mais je n'ai pas tout compris...
Quand tu dis "Importer un fichier j'ajoute la macro", ça veut dire quoi ??
On importe un fichier macro si on a un fichier macro, en particulier avec une extension BAS. Cela aurait signifié que moi ou quelqu'un d'autre aurions exporté cette macro avec cette extension. On peut aussi, via le bloc note l'enregistrer en BAS.
Or, a priori tu n'as pas de fichier BAS, tu dois donc simplement copier la macro comme un texte et la coller dans un module de ton document de publipostage Word.
m@rina
Bonjour,
oui je l'ai calqué sur un document texte que j'ai enregistré en BAS. C'est pour ça que je dis que je l'ai importé.
Sub publipostage()
Dim fusion As MailMerge
Dim x As Integer, nb As Integer
Dim chemin As String, nom As String
Set fusion = ActiveDocument.MailMerge
chemin = "C:\Users\Hugo\Desktop\Nouveau dossier\" 'mettre ici le chemin complet du dossier où stocker les fichiers sans oublier le \ à la fin
nb = fusion.DataSource.RecordCount
For x = 0 To nb - 1
With fusion
.DataSource.FirstRecord = x + 1
.DataSource.LastRecord = x + 1
.Destination = wdSendToNewDocument
.DataSource.ActiveRecord = x + 1
nom = .DataSource.DataFields("Nom du Fichier") 'Remplacer Nom" par le champ à utiliser
.Execute
End With
ActiveDocument.ExportAsFixedFormat OutputFileName:=chemin & nom & ".pdf", ExportFormat:=wdExportFormatPDF, openafterexport:=False
ActiveDocument.Close savechanges:=False
Next
End Sub
oui je l'ai calqué sur un document texte que j'ai enregistré en BAS. C'est pour ça que je dis que je l'ai importé.
Sub publipostage()
Dim fusion As MailMerge
Dim x As Integer, nb As Integer
Dim chemin As String, nom As String
Set fusion = ActiveDocument.MailMerge
chemin = "C:\Users\Hugo\Desktop\Nouveau dossier\" 'mettre ici le chemin complet du dossier où stocker les fichiers sans oublier le \ à la fin
nb = fusion.DataSource.RecordCount
For x = 0 To nb - 1
With fusion
.DataSource.FirstRecord = x + 1
.DataSource.LastRecord = x + 1
.Destination = wdSendToNewDocument
.DataSource.ActiveRecord = x + 1
nom = .DataSource.DataFields("Nom du Fichier") 'Remplacer Nom" par le champ à utiliser
.Execute
End With
ActiveDocument.ExportAsFixedFormat OutputFileName:=chemin & nom & ".pdf", ExportFormat:=wdExportFormatPDF, openafterexport:=False
ActiveDocument.Close savechanges:=False
Next
End Sub
m@rina
Messages postés
21201
Date d'inscription
mardi 12 juin 2007
Statut
Contributeur
Dernière intervention
21 décembre 2024
11 370
8 févr. 2022 à 17:05
8 févr. 2022 à 17:05
Bonsoir,
OK pour le BAS mais c'était inutile.
Maintenant tu ne dis pas où tu l'as importée, quel module ?
m@rina
OK pour le BAS mais c'était inutile.
Maintenant tu ne dis pas où tu l'as importée, quel module ?
m@rina
khazak
Messages postés
4
Date d'inscription
mardi 8 février 2022
Statut
Membre
Dernière intervention
10 février 2022
9 févr. 2022 à 14:19
9 févr. 2022 à 14:19
Bonjour,
je suis pas forcément famillier avec les macros sur word, je ne sais pas quel était la manière la plus simple de rajouter la macro.
Sinon sur visual basique j'importe mon document BAS et je me retrouve avec Mon Projet - Modules - Module 1 (avec la macro)
je suis pas forcément famillier avec les macros sur word, je ne sais pas quel était la manière la plus simple de rajouter la macro.
Sinon sur visual basique j'importe mon document BAS et je me retrouve avec Mon Projet - Modules - Module 1 (avec la macro)
m@rina
Messages postés
21201
Date d'inscription
mardi 12 juin 2007
Statut
Contributeur
Dernière intervention
21 décembre 2024
11 370
9 févr. 2022 à 15:01
9 févr. 2022 à 15:01
Il faut faire un copier coller du texte de la macro dans un nouveau module de ton document de publipostage.
m@rina
m@rina
khazak
Messages postés
4
Date d'inscription
mardi 8 février 2022
Statut
Membre
Dernière intervention
10 février 2022
9 févr. 2022 à 15:44
9 févr. 2022 à 15:44
Pas de problème, mais cependant le résultat est le même, la macro se lance dans le vide, même pas un message d'erreur.
m@rina
Messages postés
21201
Date d'inscription
mardi 12 juin 2007
Statut
Contributeur
Dernière intervention
21 décembre 2024
11 370
9 févr. 2022 à 16:08
9 févr. 2022 à 16:08
ajoute en début de macro :
msgbox "bonjour"
si la macro ne dit pas "bonjour", c'est qu'elle est mal placée et mal lancée.
Tu ne fais la fusion ? Tu lances bien la macro depuis ton document principal de fusion ?
m@rina
msgbox "bonjour"
si la macro ne dit pas "bonjour", c'est qu'elle est mal placée et mal lancée.
Tu ne fais la fusion ? Tu lances bien la macro depuis ton document principal de fusion ?
m@rina
khazak
Messages postés
4
Date d'inscription
mardi 8 février 2022
Statut
Membre
Dernière intervention
10 février 2022
9 févr. 2022 à 17:13
9 févr. 2022 à 17:13
Je viens de tester j'ai bien le message Bonjour, donc elle se lance bien.
m@rina
Messages postés
21201
Date d'inscription
mardi 12 juin 2007
Statut
Contributeur
Dernière intervention
21 décembre 2024
11 370
9 févr. 2022 à 18:23
9 févr. 2022 à 18:23
donc, elle n'est pas au bon endroit. Tu n'as pas répondu à ma 2e question.
khazak
Messages postés
4
Date d'inscription
mardi 8 février 2022
Statut
Membre
Dernière intervention
10 février 2022
10 févr. 2022 à 10:40
10 févr. 2022 à 10:40
Elle est bien placée dans le document principal.
J'ai refait le test pour être sur en ouvrant mon fichier excel normalement et non en DDE pour garder la mise en forme et la macro s'exécute bien.
J'ai refait le test pour être sur en ouvrant mon fichier excel normalement et non en DDE pour garder la mise en forme et la macro s'exécute bien.
m@rina
Messages postés
21201
Date d'inscription
mardi 12 juin 2007
Statut
Contributeur
Dernière intervention
21 décembre 2024
11 370
10 févr. 2022 à 23:09
10 févr. 2022 à 23:09
Franchement, je ne vois pas ce qui peut bloquer.
J'ai fait un test en DDE, la macro s'exécute sans aucun problème.
En DDE, la feuille Excel doit être la première feuille du classeur.
Pourquoi tu ne mettrais pas les formats dans Word avec les commutateurs ?
https://faqword.com/index.php/word/19-publipostage/412-publipostage-decimales-dates-format-americain
m@rina
J'ai fait un test en DDE, la macro s'exécute sans aucun problème.
En DDE, la feuille Excel doit être la première feuille du classeur.
Pourquoi tu ne mettrais pas les formats dans Word avec les commutateurs ?
https://faqword.com/index.php/word/19-publipostage/412-publipostage-decimales-dates-format-americain
m@rina