Bonjour

je suis à mettre au point le remplissage automatique d'un formulaire Word à l'aide d'un table de données Excel.
J'utilise des signets dans Word pour repérer les champs et y inscrire les valeurs d'une table Excel.

La difficulté est que je veux utiliser un fichier Word qui est un objet OLE dans ma feuille Excel.
J'ouvre l'objet Word et met à jour les champs. OK.
Je ferme Word et à la deuxième exécution j'ai l'erreur 642 (Le serveur distant n'existe pas ou n'est pas disponible).

J'ai vu le même problème et la solution dans le forum (http://support.microsoft.com/kb/189618), mais vu l'utilisation d'un objet OLE, je manque de technique et je n'arrive pas à résoudre, i.e. associer l'objet OLE à l'application Word pour à la fin détruire l'instance de Word.

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
Private Sub CommandButton1_Click()
 
Dim WApp As Word.Application
Dim Docc As OLEObject
Données = Feuil1.Range("DataWord")
 
    Set Docc = Feuil1.OLEObjects("WordDoc1")
    Docc.Verb xlVerbOpen
 
    With ActiveDocument
        For L = 1 To UBound(Données)
            Signet = Données(L, 1)
            Valeur = Données(L, 2)
            Select Case .FormFields(Signet).Type
                Case 70, 83 'Texte et listbox
                    .FormFields(Signet).Result = Valeur
                Case 71 'Checkbox
                    .FormFields(Signet).CheckBox.Default = IIf(Valeur = "Vrai", True, False)
            End Select
        Next L
    End With
 
Set Docc = Nothing
 
End Sub