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.
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.
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
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
Partager