Publipostage

freefer

XLDnaute Nouveau
Bonjour,

J'ai besoin de créer des liens de publipostage entre Excel et Word. Mon projet comporte un fichier Excel avec un onglet nommé "Publipostage" qui regroupe toutes les notes, moyennes et classements d'une classe et un document word formaté qui sert pour l'édition individuelle des notes de chaque élève. Ces deux fichiers sont placés dans un même répertoire, avec les liens de publipostage créés entre les 2 fichiers.
Lorsqu'un nouveau cours débute, le responsable ouvre le fichier Excel (vierge mais formaté) et choisit le répertoire où sera sauvegardé le fichier qui sera renommé. Tout cela est automatisé avec VBA qui sauvegardera également automatiquement le fichier Word sous le nom du cours, dans le même répertoire. Mais alors, le fichier Word ne reconnaît plus le fichier Excel qui a changé de nom et tout les liens publipostages sont perdus, il faut réinitialiser à la main : re-selectionner le fichier Excel comme base de données, sélectionner la feuille publipostage et dé-sélectionner les enregistrements de le feuille non concernés par le publipostage.

Je souhaiterais donc ré-créer ces liens via VBA à l'issue de la sauvegarde de ces deux fichiers sous leur nouveau nom.

J'y suis en partie arrivé, sauf qu'il faut que le fichier Excel soit fermé pour recréer les liens et je le fait à partir de Word et non Excel. De plus je n'arrive pas à ne sélectionner que les enregistrements que j'ai besoin pour le publipostage, la feuille publipostage étant pré-formatée et le nombre d'élèves variant d'un cours à l'autre.

C'est un peu compliqué, je sais mais si quelqu'un pouvait m'aider, ce serait avec plaisir.

Cordialement.
 

chris

XLDnaute Barbatruc
Re : Publipostage

Bonjour

En ce qui me concerne j'ai fait l'inverse.
J'utilise ce code (je ne sais plus quelle est la source) qui remet le répertoire courant comme répertoire de lien à l'ouverture et lance le publipostage.

Code:
Sub AutoOpen()
Dim maSource As String
maSource = ActiveDocument.Path & "\monClasseur.xls"""
With ActiveDocument.MailMerge
.MainDocumentType = wdFormLetters
.OpenDataSource Name:=maSource
.Destination = wdSendToNewDocument
.DataSource.FirstRecord = wdDefaultFirstRecord
.DataSource.LastRecord = wdDefaultLastRecord
.Execute Pause:
' rétablit document normal
.MainDocumentType = wdNotAMergeDocument
End With
End Sub

Nom du classeur à adapter.
 

Discussions similaires

Statistiques des forums

Discussions
312 496
Messages
2 088 982
Membres
103 997
dernier inscrit
SET2A