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 :
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.
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 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
Pourriez-vous m'aider?
Merci beaucoup,
Partager