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