Bonjour à tous,
J'ai un problème sur plusieurs macros Excel qui utilisent Word, dans la dernière je cherche à modifier des signets Word à l'aide d'une Userform.
La macro fonctionne une fois sur deux, je constate que dans le cas où cela ne fonctionne pas le fichier est toujours en "Lecture seule" malgré que Word n'est pas ouvert, ni le document en question.
Après avoir un peu fouillé je vois que des processus Word tournent malgré que le logiciel ne semble pas lancé.
En relançant la macro cela refonctionne quand même, je pense donc ne pas laisser le fichier dans l'état d'origine à chaque fois, mais je ne sais pas ce qui manque dans mon code. En réalité une fois sur deux le fichier est en lecture seule puis en normal, comme si à chaque relance de macro je changeais cet aspect du fichier.
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 Option Explicit Public Nom_destinataire As String Public MonNom As String Public Prenom As String Public Argu As String Public Entreprise As String Sub lettre_userform() UserForm1.Show 'affiche le formulaire construit au préalable Dim WordApp As Word.Application Dim WordDoc As Word.Document Set WordApp = New Word.Application 'ouvre une session Word WordApp.Visible = True Set WordDoc = Documents.Open("C:\Users\aboucher\Documents\test2.docx", ReadOnly:=False, Visible:=True) 'ouvre le document Word WordApp.Visible = False 'Word est masqué pendant l'opération WordDoc.Bookmarks("XXXX").Range.Text = Nom_destinataire WordDoc.Bookmarks("BBBB").Range.Text = MonNom WordDoc.Bookmarks("AAAA").Range.Text = Prenom WordDoc.Bookmarks("ZZZZ").Range.Text = Argu WordDoc.Bookmarks("YYYY").Range.Text = Entreprise 'bookmarks correspondent aux signets définis dans Word WordApp.Visible = True 'affiche le document Word 'WordDoc.PrintOut 'Pour imprimer le doc obtenu 'WordDoc.Close True 'ferme le document word en sauvegardant les données 'WordApp.ActiveDocument.Close 'WordApp.Quit 'ferme la session Word End Sub
Partager