bonjour,
Comme le dit le titre je cherche à réaliser cet ensemble d'opérations lors d'une phase de mon programme.
J'ai trouvé ce code que j'ai adapté pour mes besoins :
Mon problème lorsque je retire la ligne 13 (masque le doc) est qu'une fenêtre word apparaît me disant que le fichier est déjà utilisé et que je ne peux l'ouvrir en lecture seulement !!!
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68 Sub pjauto(DICT As String) nomfich = ActiveWorkbook.Path SourceFichier = ActiveWorkbook.Path & "\ARCHIVE\courtype\aremplir\" If DICT = "avec" Then SourceFichier = SourceFichier & "arretecircdict.doc" If DICT = "sans" Then SourceFichier = SourceFichier & "arretecircsansdict.docx" 'remplir la pièce jointe, l'enregistrer et la joindre 'nécéssite d'activer la référence Microsoft Word xx.x Object Library Set WordApp = CreateObject("word.application") 'ouvre session word Set WordDoc = WordApp.Documents.Open(SourceFichier) 'ouvre document Word 'WordApp.Visible = False 'word masqué pendant l'operation If DICT = "avec" Then Load paramsaisir paramsaisir.titre.Caption = "PRECISEZ HORAIRE D INTERVENTION et RENDEZ VOUS:" paramsaisir.boutsais.Caption = "VALIDER" paramsaisir.yesno.Visible = True paramsaisir.Opt1.Caption = DOSSIER.saisidaterdv.Value paramsaisir.Opt2.Caption = DOSSIER.saisidaterdv2.Value paramsaisir.Show vbModal If paramsaisir.Opt1.Value = True Then nom = paramsaisir.Opt1.Caption If paramsaisir.Opt2.Value = True Then nom = paramsaisir.Opt2.Caption nom = nom & " " & paramsaisir.saisi.Value Unload paramsaisir ' i = DOSSIER.Controls("saisiauto" & contactcreer.numauto.Caption).Value nom1 = DOSSIER.Controls("autonom" & contactcreer.numauto.Caption).Value WordDoc.Bookmarks("date").Range.Text = Date WordDoc.Bookmarks("client").Range.Text = DOSSIER.saisiclient.Value WordDoc.Bookmarks("interv").Range.Text = nom WordDoc.Bookmarks("mairie").Range.Text = nom1 WordDoc.Bookmarks("adresschant").Range.Text = DOSSIER.saisiadress.Value End If If DICT = "sans" Then Load paramsaisir paramsaisir.titre.Caption = "SOUHAITEZ VOUS TRAVAILLEZ EN : " paramsaisir.saisi.Visible = False paramsaisir.yesno.Visible = True paramsaisir.boutsais.Caption = "VALIDER" paramsaisir.Opt1.Caption = "DEMI-CHAUSSEE" paramsaisir.Opt2.Caption = "RUE BARREE" paramsaisir.Show vbModal WordDoc.Bookmarks("date").Range.Text = Date If paramsaisir.Opt1.Value = True Then WordDoc.Bookmarks("chauss").Range.Text = paramsaisir.Opt1.Caption If paramsaisir.Opt2.Value = True Then WordDoc.Bookmarks("chauss").Range.Text = paramsaisir.Opt2.Caption = "RUE BARREE" Unload paramsaisir End If WordApp.Visible = True 'affiche le document Word 'WordDoc.PrintOut 'imprimer WordDoc.SaveAs (nomfich & "\courrier\p.Doc") WordDoc.Close 'ferme le document word en sauvegardant les données WordApp.Quit 'ferme la session Word 'désactive les variables type object Set WordApp = Nothing Set WordDoc = Nothing End Sub
Mon code ne s'arrête pas et fini par beugé à la ligne 35 ou 52 lorsque j'essaye de remplir les signets !!!!
J'ai vérifié les fichiers et il ne sont pas vérouillés en lecture donc le problème vient du code !!!!!
Avez vous une solution ????
J'ai trouvé cette discussion mais je n'utilise pas les filedialog car je souhaite modifier mon document.
http://www.developpez.net/forums/d12...nt-word-excel/
Cette discussion n'est pas résolue donc j'avance peu.
petite précision qui a son importance pour votre analyse
mes variables sont toutes déclaré en début du module (plusieurs sub dans ce module)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Option Explicit Dim SourceFichier As String Dim nomfich As String Dim WordApp As Word.Application Dim WordDoc As Word.Document Dim nom As String Dim nom1 As String
Partager