Bonjour à tous !
Je suis une novice sur le forum. J'espère que vous seriez indulgent avec moi![]()
Et j'espère surtout que vous pourriez m'aider : j'ai cherché partout pour essayer de comprendre mon blocage mais je ne trouve pas de solution à mon problème.
Je souhaite automatiser mon publipostage depuis un fichier Excel.
Je commence à apprendre le vba seule mais c'est pas si simple...
Avec le code VBA ci-dessous, le fchier word s'ouvre mais le publipostage ne se fait pas, je ne comprends pas pourquoi...
Pour info, lorsque j'enregistre et je ferme mon fichier excel puis j'ouvre mon fichier word, le publipostage fonctionne.
Si quelqun pourrait m'aider à comprendre ma faute, ca serait sympa !
Merci d'avance pour ceux qui prendront le temps de me lire et d'essayer de comprendre mon problème.
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
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 Sub commandButton1_Click() Dim NomBase As String Dim oWdApp As Object 'Lancer Word Set oWdApp = CreateObject("Word.Application") With oWdApp 'Afficher Word si nécessaire... .Visible = True 'Ouvrir le document Word Set Wordoc = oWdApp.documents.Open("C:\Users\bws229\Desktop\dc1Test.docx") End With 'fonctionnalité de publipostage pour le document spécifié With docWord.mailMerge 'Ouvre la base de données .OpenDataSource Name:=NomBase, _ Connection:="Driver={Microsoft Excel Driver (*.xlsm)};" & _ "DBQ=" & NomBase & "; ReadOnly=True;", _ SQLStatement:="SELECT * FROM [Réponses1$]" 'Prend en compte l'ensemble des enregistrements With .DataSource .firstRecord = wdDefaultFirstRecord .lastRecord = wdDefaultLastRecord End With 'Exécute l'opération de publipostage .Execute Pause:=False Application.ScreenUpdating = True 'Fermeture du document Word docWord.Close False appWord.Quit End Sub
Partager