Imprimer publipostage par Excel

Bonjour

Encore une fois je me tourne vers la communauté pour une aide.

J'ai un doc excel et un publipostage word. Je voudrais que ma macro imprime le publipostage.

Jusque là, je peux ouvrir le docx mais pas lancer l'impression.

Ma derniere macro bloque tout. Je recommence donc sur cette base :

Sub Bus()

'

' Bus Macro

'

Set wordapp = CreateObject("word.Application")

wordapp.Visible = True

wordapp.Documents.Open "U:\DAMA\Activité du service\Bon renouvellement bus.docx"

'

End Sub

Quelle serait la ligne de code pour lancer l'impression ?

bonjour

peut-etre comme ceci : (pas testé)

Dim objDoc 
Set objDoc = wordapp.Documents.Open ("U:\DAMA\Activité du service\Bon renouvellement bus.docx")
objDoc.PrintOut

pour imprimer sur l’imprimante par défaut configurée au moment de l’exécution du code...

Fred

Bonjour

En partant de ton code, je suis arrivé ainsi :

Set wordapp = CreateObject("word.Application")

wordapp.Visible = True

wordapp.Documents.Open "U:\DAMA\Activité du service\Bon renouvellement bus.docx"

wordapp.PrintOut

mais il n'y pas le publipostage, juste la lettre

Re bonjour

personnellement en lisant ceci

J'ai un doc excel et un publipostage word. Je voudrais que ma macro imprime le publipostage.

Jusque là, je peux ouvrir le docx mais pas lancer l'impression.

Je comprend que tu as un fichier et un fichier word publiposté, pas un fichier word qui est le modèle de ton publipostage.... et pour lequel il faut faire le publipostage .... moi j'ai compris que tu voulais imprimer et c'est cela qui te posait problème...

petite question ton publipostage tu veux l'enregistré ? puis l'imprimer ?? ou seulement l'imprimer ???

Fred

juste l'imprimer.

merci de fournir un fichier excel avec quelques lignes de ta base source du publipostage et ainsi que le modèle du publipostage en prenant soin de le rendre anonyme...

Fred

Sinon

voici un essai a l'aveugle :

NomBase = c:\temp\source_publipostage.xlsx"
  With objDoc.mailMerge
        .OpenDataSource Name:=NomBase, Connection:="Driver={Microsoft Excel Driver (*.xlsx)};" & _
            "DBQ=" & NomBase & "; ReadOnly=True;", SQLStatement:="SELECT * FROM [Feuil1$]"
        .Destination = wdSendToPrinter 'fusion vers l'imprimante
        .suppressBlankLines = True
        With .DataSource
            .firstRecord = wdDefaultFirstRecord
            .lastRecord = wdDefaultLastRecord
        End With
        .Execute Pause:=False 'Exécute l'opération de publipostage
    End With

Fred

Voici les documents

Sinon ce code bloque sur NomBase = c:\temp\source_publipostage.xlsx" avec une erreur de syntaxe

oui effectivement il manque un " avant le C:\....

c'est le chemin qu'il faut que tu adaptes avec le fichier excel qui est ta base....

Fred

Et la base

Euhhhh la base ??? pas là:!:

je répète quelques lignes suffisent pour faire des essais inutile de charger un fichier de plusieurs Mo

Fred

Il y a une erreur 424 sur la ligne With objDoc.mailMerge

tu as bien mit ceci avant ???

Set wordapp = CreateObject("word.Application")
wordapp.Visible = True
Dim objDoc 
Set objDoc = wordapp.Documents.Open ("U:\DAMA\Activité du service\Bon renouvellement bus.docx")

Fred

Erreur 424 sur cette ligne

Set objDoc = wordapp.Documents.Open ("U:\DAMA\Activité du service\Bon renouvellement bus.docx")

Donc voici un essai...

comme ta base est le fichier contenant la macro de publipostage.. je passe par un fichier temporaire qui est mis a jour a chaque exécution du code... sinon je ne sais pas faire...

cela implique que dans ton fichier modèle word, la base source du publipostage doit pointer sur ce fichier source temporaire et plus ton fichier contenant ta macro....

a toi d'adapter les chemins ou se trouve les fichiers et éventuellement le nom du fichier temporaire

NomBase = ThisWorkbook.Path & "\sourcepublipostage.xlsx"
docWord = ThisWorkbook.Path & "\Bon renouvellement bus.docx"

pour le moment j'ai considérer que tous les fichiers étaient dans le même dossier ou se trouve ton fichier exécutant la macro...

dans le code actuel il a la création d'un nouveau fichier word publiposté... il suffit de remplacer le wdSendToNewDocument par wdSendToPrinter pour une impression directe... que je trouve toujours très dangereux car au finale si il y a erreur on imprime des feuilles pour rien...


j'ai aussi simplifier ton core pour le format date... plutôt que de faire ligne par ligne, on peut le faire en une fois...


Fred

Je te remercie pour le travail effectué.

Rechercher des sujets similaires à "imprimer publipostage"