Bonjour,

J'ai un petit souci que je n'arrive pas a comprendre ni à résoudre.

Sur Excel 2010, j'ai un tableau avec une liste de document word a créer.
A coté, j'ai un Template Word qui contient des champs.
Ces champs sont liées aux propriétés personnalisées du document Word.

En double cliquant sur le titre du document dans excel, je souhaite via VBA, créer un nouveau document issu du Template, le renommer et le sauvegarder quelque part sur le réseau et ensuite modifier les propriétés personnalisées.
Les valeurs utilisées pour modifiées les champs Word sont issus d'un formulaire initié après double clic sur le titre du document dans le tableau Excel.

Voici le premier code pour créer le document:
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
 
    'Création du fichier Word
    Set wordapp = CreateObject("word.Application")
    wordapp.Visible = True
    Set DocWord = wordapp.Documents.Add(Template:="\\dom2.ad.sys\DFSLPT1ROOT\LPT1_TUS$\05_Field_Service\507_PGI_2016-2017\04-MACRO_FLORENT\DOSSIER_TEMPORAIRE_FP\Trame\Field Procedure Template French.dotx", NewTemplate:=False, DocumentType:=0)
    NomFich = "\\dom2.ad.sys\DFSLPT1ROOT\LPT1_TUS$\05_Field_Service\507_PGI_2016-2017\04-MACRO_FLORENT\DOSSIER_TEMPORAIRE_FP\En cours\" & Template_Property.TextBox11.Value & ".docx"
    wordapp.ActiveDocument.SaveAs Filename:=NomFich, FileFormat:= _
        wdFormatDocumentDefault, LockComments:=False, Password:="", AddToRecentFiles:= _
        True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:= _
        False, SaveNativePictureFormat:=False, SaveFormsData:=False, _
        SaveAsAOCELetter:=False
    wordapp.ActiveDocument.Close
    wordapp.Quit
    Set wordapp = Nothing
    Set DocWord = Nothing
Voici le second code pour modifier les propriétés personnalisées du document :
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
 
    'Modification des propriété personnalisées document word
    'Nécessite d'activer la référence DSO OleDocument Properties Reader 2.0
    'http://support.microsoft.com/default.aspx?scid=kb;EN-US;Q224351
    Dim DSO As DSOFile.OleDocumentProperties
    Set DSO = New DSOFile.OleDocumentProperties
    'Attention: Le fichier doit être préalablement fermé!
    DSO.Open sfilename:="\\dom2.ad.sys\DFSLPT1ROOT\LPT1_TUS$\05_Field_Service\507_PGI_2016-2017\04-MACRO_FLORENT\DOSSIER_TEMPORAIRE_FP\En cours\" & Template_Property.TextBox11.Value & ".docx"
    DSO.CustomProperties.Item("FP #") = Template_Property.TextBox1.Value
    DSO.CustomProperties.Item("Schedule Task & Step Number") = Template_Property.TextBox2.Value
    DSO.CustomProperties.Item("Current Revision") = Template_Property.TextBox3.Value
    DSO.CustomProperties.Item("Approved By DATE") = Template_Property.TextBox4.Value
    DSO.CustomProperties.Item("Approved By") = Template_Property.TextBox5.Value
    DSO.CustomProperties.Item("Prepared By DATE") = Template_Property.TextBox6.Value
    DSO.CustomProperties.Item("Prepared By") = Template_Property.TextBox7.Value
    DSO.CustomProperties.Item("Reference Drawing Title") = Template_Property.TextBox8.Value
    DSO.CustomProperties.Item("Reference MLI or Cost Code") = Template_Property.TextBox9.Value
    DSO.CustomProperties.Item("Equipment Type") = Template_Property.TextBox10.Value
    DSO.SummaryProperties.Title = Template_Property.TextBox11.Value
    DSO.Close True
    Set DSO = Nothing
Tout fonctionne très bien a un détail près .
A l'ouverture du document nouvellement créé, les champs personnalisés ont bien été modifiés mais n'ont pas été mis à jour.
Je souhaiterais que les champs soient mis à jour pour que les collègues n'aient pas à penser que ce n'est pas le bon document qu'ils ont ouvert ou bien a leur demander de faire eux-mêmes la mise à jour des champs (Ctrl + A + F9)
Et je ne vois pas comment je peux le faire automatiquement en vba à la fin du 2ème code.

Sinon j'ai essayé d'inverser les 2 paragraphes de codes pour modifier les propriétés du Template avant création du document.
Dans ce cas, les champs sont mis à jour, mais une fois sur 2 le code plante a la ligne "DSO.Close true" en me disant : Erreur 70 permission refusée.
et je dois alors reseter les champs manuellement dans le Template avant de pouvoir refaire l'opération.

Si quelqu'un avait une idée, je lui en serais extrêmement reconnaissant.

Merci d'avance.
Agd