OVH Cloud OVH Cloud

VBA - Fusionner vers l'imprimante

3 réponses
Avatar
Antoine
Bonjour,

J'ai réalisé un petit programme vb permettant de faire du publipostage.
Tout fonctionne correctement. Cependant, les utilisateurs de Word 2003 n'ont
pas le choix de l'imprimante, lors de la fusion du document vers
l'imprimante.
(.Destination = wdSendToPrinter)

Pour info la référence word de mon projet Vb est :"Microsoft Word 8.0 Object
Library".
De plus le choix de l'imprimante est bien proposé lors d'une fusion réalisée
directement à partir de word 2003

Merci pour votre aide,
Antoine

Voici une partie du code utilisé:
********************
With OLE1.object.Application
.Visible = False

' Ouverture source donnée
.Documents.Open SourceDonnee
.Selection.WholeStory
.Selection.Delete wdCharacter, 1

' Ecriture des enregistrements
...

.ActiveDocument.SaveAs SourceDonnee, True
.ActiveDocument.Close

.ActiveDocument.MailMerge.OpenDataSource SourceDonnee
.ActiveDocument.Save

With .ActiveDocument.MailMerge
OLE1.object.Application.ScreenUpdating = True
OLE1.object.Application.Visible = True
.Destination = wdSendToPrinter
.MailAddressFieldName = ""
.MailSubject = ""
.MailAsAttachment = False
.SuppressBlankLines = True
With .DataSource
.FirstRecord = wdDefaultFirstRecord
.LastRecord = wdDefaultLastRecord
End With
.Execute True
End With

.Quit wdDoNotSaveChanges
End with
*******************

3 réponses

Avatar
Anacoluthe
Bonjour !

'Antoine' nous a écrit ...
J'ai réalisé un petit programme vb permettant de faire du publipostage.
Tout fonctionne correctement. Cependant, les utilisateurs de Word 2003 n'ont
pas le choix de l'imprimante, lors de la fusion du document vers
l'imprimante.
(.Destination = wdSendToPrinter)


L'impression se fait sur l'imprimante par défaut.
Ajoutez au début de votre code l'affichage de FilePrintSetup
pour que l'utilisateur puisse changer d'imprimante :
Dialogs(wdDialogFilePrintSetup).Show

Ça vous irait ?

Anacoluthe
« Nos premières impressions
sont les seules ineffaçables.»
- Jules RENARD

Avatar
Antoine
Merci,

Oui cela m'irait, mais dans ce cas existe t-il un moyen de remettre
l'imprimante qui était par défaut avant l'édition, de manière invisible pour
l'utilisateur ?

"Anacoluthe" a écrit dans le message de news:
%
Bonjour !

'Antoine' nous a écrit ...
J'ai réalisé un petit programme vb permettant de faire du publipostage.
Tout fonctionne correctement. Cependant, les utilisateurs de Word 2003
n'ont pas le choix de l'imprimante, lors de la fusion du document vers
l'imprimante.
(.Destination = wdSendToPrinter)


L'impression se fait sur l'imprimante par défaut.
Ajoutez au début de votre code l'affichage de FilePrintSetup
pour que l'utilisateur puisse changer d'imprimante :
Dialogs(wdDialogFilePrintSetup).Show

Ça vous irait ?

Anacoluthe
« Nos premières impressions
sont les seules ineffaçables.»
- Jules RENARD



Avatar
Anacoluthe
Bonjour !

'Antoine' nous a écrit ...
Oui cela m'irait, mais dans ce cas existe t-il un moyen de remettre
l'imprimante qui était par défaut avant l'édition, de manière invisible pour
l'utilisateur ?


Ben oui, c'est classique :
il suffit de placer Application.ActivePrinter dans une variable au début
ImprimanteActuelle = .ActivePrinter
...
et de la restituer à la fin
.ActivePrinter = ImprimanteActuelle

Anacoluthe
« Nos premières impressions
sont les seules ineffaçables. »
- Jules RENARD