VBA : ouvrir doc word et conserver données publipostage
G
Bonjour à tous,
J'ai un tableau qui me permet de faire du publipostage.
Mon fichier word est "réglé" pour utiliser ce tableau comme base et à chaque fois que je l'ouvre manuellement, je dois cliquer sur "oui" pour revalider la source de mes données.
Lorsque j'utilise ma macro pour ouvrir mon fichier de word de publipostage, il semble que cela fonctionne comme si je cliquais sur non, et je dois resélectionner ma source de données à chaque fois.
Comment puis-je changer cela ?
Sub ouvrirdoc()
Dim publipostage As String
publipostage = Sheets("Validation").Range("E2")
Set wordapp = CreateObject("word.Application")
wordapp.Visible = True
wordapp.Documents.Open publipostage
End SubMerci d'avance, bonne journée !
G
Bonjour, quelqu'un a t-il une idée à ce sujet ?
merci :)
Invité
Bonjour, Voici une démo fonctionnelle
P
Sub Publipostage()
Dim WordApp As Object, WordDoc As Object
Dim NDXL As String, NDF As String, NDF2 As String, Rep As String
Application.ScreenUpdating = False
NDXL = ActiveWorkbook.Path & "\" & ActiveWorkbook.Name
NDF = ActiveWorkbook.Path & "\BULL.docx"
Rep = ActiveWorkbook.Path & "\SousDossier\"
If Not ExisteRep(Rep) Then MkDir Rep
NDF2 = Rep & "DocBULL_" & Format(Now(), "yyyymmddhhmm")
Set WordApp = CreateObject("Word.Application")
WordApp.Visible = False
Set WordDoc = WordApp.Documents.Open(NDF, ReadOnly:=False)
With WordDoc.mailMerge
.OpenDataSource Name:=NDXL, Connection:="Driver={Microsoft Excel Driver (*.xls;*.xlsm)};" & _
"DBQ=" & NDXL & "; ReadOnly=True;", SQLStatement:="SELECT * FROM [Feuil1$]"
'.Destination = wdSendToPrinter 'Si besoin de 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
WordDoc.Application.ActiveDocument.SaveAs NDF2
WordDoc.Close
WordApp.Application.Quit
Set WordDoc = Nothing
Set WordApp = Nothing
Application.ScreenUpdating = True
MsgBox "Publipostage OK"
End Sub