Publipostage + quickpart + macro pdf

Fermé
eternal1001 - 30 juil. 2018 à 21:46
m@rina Messages postés 21080 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 15 novembre 2024 - 1 août 2018 à 22:35
Bonjour à tous,

J'ai besoin de vos lumières! Je n'ai pas beaucoup de connaissance mais voilà mon problème :
J'ai une base de données excel qui contient tous les services que font les enseignants (1 enseignant peut avoir une seule ligne ou plusieurs).
Je dois leur éditer des attestations personnalisées dans lesquelles devront figurer leur service.
J'ai donc préparer un document excel avec uniquement nom et prénom sans doublons.
J'ai ensuite :
- préparer mon document word dans lequel j'ai fais un publipostage
- insérer quickpart/champs en sélectionnant ma base de donnée et effectué une requête pour que le service de l'enseignant concerné s'affiche.
Jusque là tout va bien sauf que :
1er problème : le service ne se met pas automatiquement à jour lorsque je fais défiler l'aperçu des résultats.
Je suis obligé de faire ctrl+A et F9 pour mettre à jour les champs
Sauriez-vous s'il existe un moyen que les champs se mettent automatiquement à jour?
2ème problème : je souhaite que chaque attestation soit enregistré automatiquement en un fichier PDF
J'ai donc insérer le code suivant :
Sub SavePubliAsPDF()
Dim LastRec As Integer
Dim Path As String, Id As String
Application.ScreenUpdating = False
'Choix du dossier d'enregistrement des fichiers
With Application.FileDialog(msoFileDialogFolderPicker)
.Title = "Sélectionnez un dossier où enregistrer vos fichiers"
.Show
If Not (.SelectedItems.Count = 0) Then
Path = .SelectedItems(1)
Else
Exit Sub
End If
End With
'Décompte du nombre d'enregistrements dans le publipostage
ActiveDocument.MailMerge.DataSource.ActiveRecord = wdLastRecord
LastRec = ActiveDocument.MailMerge.DataSource.ActiveRecord
ActiveDocument.MailMerge.DataSource.ActiveRecord = wdFirstRecord
'Enregistrement des fichiers
ActiveDocument.MailMerge.ViewMailMergeFieldCodes = False
For i = 1 To LastRec Step 1
Id = ActiveDocument.MailMerge.DataSource.DataFields(1).Value
ActiveDocument.SaveAs2 Path & "\Service " & Id & ".pdf", wdFormatPDF
ActiveDocument.MailMerge.DataSource.ActiveRecord = wdNextRecord
Next i
MsgBox "L'enregistrement de votre publipostage est terminé." & vbLf & vbLf & LastRec & " fichiers ont été enregistrés dans le dossier : " & Path, vbOKOnly + vbInformation, "Enregistrement du publipostage terminé"
Application.ScreenUpdating = True
End Sub


mais voilà lorsque j'exécute la macro, l'enregistrement d'un pdf par enseignement se fait bien mais le service reste le même pour tout le monde.
Pourriez-vous m'aider?
Merci beaucoup,


A voir également:

1 réponse

m@rina Messages postés 21080 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 15 novembre 2024 11 350
1 août 2018 à 22:35
Bonjour

Le premier problème n'est pas un problème. La mise à jour des champs est qq de fréquent à faire sur Word, et ce n'est pas très compliqué.

Le seond problème concerne une macro qui fait un publipostage. Or via ton publipostage tu fais aussi une requête avec le champ DATABASE, la macro ne gère pas ça. Donc c'est normal. Pourquoi ne pas poser la question sur le site où tu as récupéré la macro ?

m@rina
1