Bonjour à tous,

Je me suis mis depuis une semaine ou deux au VBA pour Excel essentiellement et j'essaye différents exercices pour m'entraîner (le VBA pouvant m'être utile dans mon travail en gestion de projet). Ici j'essaye uniquement de remplir un fichier Word à l'aide d'Excel, où les XXXX, YYYY de Word seraient remplacés par mes réponses aux Inputbox... (le code VBA se trouvant sur Excel et non Word)

Les inputbox apparaissent bien, le word et le document aussi (même si c'est pas systématique pour être franc mais bon je m'en satisfait pour l'instant), mais par contre aucun remplacement de signet, l'erreur indiquant "5941" comme si il ne trouvait pas mon document.
J'ai bien activé en amont la Librairie Word.. dans les références.

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
37
38
39
40
41
42
Option Explicit
 
Public Sub Word()
 
'permet de copier des valeurs d'un tableau excel vers un fichier word prédéfini,
'par exemple préremplir des lettres de motivations en remplaçant juste les noms d'entreprises, lieu, ect...
 
Dim Nom_destinataire As String
Dim MonNom As String
Dim Prenom As String
Dim Argu As String
Dim Entreprise As String
 
Dim WordApp As Word.Application
Dim WordDoc As Word.Document
Dim wbk As ThisWorkbook
Dim wsh As Worksheet
 
Nom_destinataire = InputBox("Nom du destinataire ?")
Prenom = InputBox("Mon Prenom ?")
MonNom = InputBox("Mon nom ?")
Entreprise = InputBox("Entreprise ?")
Argu = InputBox("Argumentaire ?")
 
    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
 
    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.Quit 'ferme la session Word
 
End Sub
Pour information je débute, j'ai pas vraiment d'intérêt à faire ce genre de programme j'essaye juste d'avoir les bons réflexes et la bonne logique en VBA pour m'auto-corriger à l'avenir.

Edit : Pour information dans mon fichier Word les signets apparaissent en tant que XXXX, AAAA,... sans guillemet ni rien. Peut-être il y a t-il une formulation particulière que je ne connais pas pour indiquer que ce sont des signets, même si selon les exemples du forums j'ai l'impression que c'est bon.

En vous remerciant pour vos conseils,

ColoRBay