Bonjour ,
A partir de mon application (en PB 10.2.1) j'ouvre des document de publipostage (.doc).
Info : Pour réaliser ces documents, j'ai employé la méthode décrite ici. Oui, j'ai fouillé avant de finir par vous exposer mon problème
Pour lancer la fusion des documents automatiquement, cette macro a été développée puis installée sur chaque poste utilisateur :
Depuis mon application, je fais un Run de Winword avec le nom du fichier et la commande /mfusionner.
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 Sub fusionner() docname = ActiveDocument.Name With ActiveDocument.MailMerge .Destination = wdSendToNewDocument .MailAsAttachment = False .MailAddressFieldName = "" .MailSubject = "" .SuppressBlankLines = True With .DataSource .FirstRecord = wdDefaultFirstRecord .LastRecord = wdDefaultLastRecord End With .Execute Pause:=True End With ' fermeture Documents(docname).Close SaveChanges:=wdDoNotSaveChanges End Sub
Ceci fonctionne à merveille tant qu'un autre classeur Excel Lambda n'est pas ouvert (avant la demande de fusion). En effet, à partir de ce moment, le "datasource" ne se ferme pas automatiquement et de plus il devient l'écran actif.
En résumé, je voudrais savoir comment je peux faire pour fermer mon datasource (fichier excel BD pour la fusion Word) lorsque celui-ci reste ouvert.
J'ai bien essayé la fonction Close
mais elle me renvoie l'erreur 438
Code : Sélectionner tout - Visualiser dans une fenêtre à part ActiveDocument.MailMergeDataSource.Close
Merci de votre aidePropiété ou méthode non gérée par cette objet
PS : La macro jointe n'a pas été développée par mes soins. Je me retrouve à la maintenir alors que je n'y connait absolument rien en VB.
Partager