Mise à jour des champs liés dans le document Word à partir d'Excel VBA

Je suis en train de mettre à jour automatiquement certaines informations (telles que des noms, des dates et des nombres) à travers 3 différents documents Word en mettant les données dans une feuille de calcul et un lien vers les cellules respectives à partir de Word. La feuille de calcul a quelques Macros qui auto-mise à jour des parties de la feuille de calcul en interne.

Tout fonctionne bien, sauf pour la mise à jour les liens dans les documents Word.
Lorsque vous essayez de mettre à jour un lien dans Word en cliquant-droit dessus et sélectionnez l'option "mettre à jour le lien" option il ouvre le dialogue d'avertissement de Macro pour la feuille de calcul, en se demandant si je veux activer les Macros ou pas. Il ne veut pas le faire juste une fois, mais sans cesse au cours des années 20, ou si le processus de mise à jour prend (ce qui semble anormalement long pour moi). Afin de mettre à jour le lien fonctionne, mais seulement si vous êtes prêt cliquez sur "activer les Macros" de quelques dizaines de fois.

J'ai essayé d'automatiser la mise à jour de tous les champs dans un document à partir de Word avec VBA, mais qui a le même problème, il évoque aussi le dialogue Macros constamment pendant une demi-minute.
Voici mon code pour que:

Sub UpdateFields()
    ActiveDocument.Fields.Update
End Sub

J'ai aussi essayé de mettre à jour les documents Word directement à partir de la feuille de calcul, mais cela ne fonctionne pas non plus, parce que quand Excel essaie d'ouvrir un document Word via VBA le programme s'arrête l'exécution et trows cette erreur:

"Excel est en attente pour une autre application pour effectuer une action OLE."

Cliquant sur ok et l'attente n'aide pas car le message d'erreur réapparaît après quelques secondes, et la seule façon de l'arrêter est de le supprimer manuellement le processus Excel.

Voici ma Macro Excel code:

Sub LoopThroughFiles()
    Path = Application.ActiveWorkbook.Path
    Dim WordFile As String
    WordFile = Dir(Path & "\*.doc")
    Do While Len(WordFile) > 0
        Run Update(Path & "\" & WordFile)
        WordFile = Dir
    Loop
End Sub

Function Update(Filepath As String)

    Dim WordDoc As Word.Document
    Set WordApplication = CreateObject("Word.Application")
    Set WordDoc = WordApplication.Documents.Open(Filepath) 'This produces the error

    ActiveDocument.Fields.Update

End Function

Noter que les seuls fichiers dans le dossier sont les 3 documents et de la feuille de calcul, et le programme ne trouver les fichiers sans aucun problème.

J'ai cherché des solutions en ligne, mais je n'ai pas vraiment trouver quelque chose, que j'ai trouvé bizarre, car il semble être une chose assez commune que quelqu'un le ferait avec VBA.
Puis de nouveau, j'ai très peu d'expérience avec VBA, donc je suis peut-être complètement à côté du sujet et il y a une super solution simple, je ne suis pas au courant de.

Le programme ne peut pas trouver les fichiers, sauf si vous faites une faute de frappe dans le présent code, parce que Do While Len(StrFile) > 0 devrait être Do While Len(WordFile) > 0. Il y a d'autres problèmes potentiels avec des variables non déclarées, etc. mais je n'attends pas ceux de provoquer des erreurs. De toute façon, je vais voir si je peut le comprendre 🙂
J'utilise en fait StrFile le nom de la variable dans mon programme, j'ai juste changé le nom quand je l'ai posté ici parce que je voulais la rendre plus compréhensible et j'ai oublié de modifier cette ligne. Donc, malheureusement, ce n'est pas la question.
J'ai mis à jour le code ci-dessus, le WordFile est maintenant utilisé de façon constante. Merci pour le tuyau.
Pas de problème. Pouvez-vous décrire le problème plus en détail? Quand j'ai essayer de l'exécuter sur un fichier avec les champs liés, le document omet simplement de l'ouvrir et de la macro Excel s'arrête en cours d'exécution sans déclencher d'erreur. Est-ce ce qui se passe pour vous?
Non, pas exactement. Quand je le lance, je viens d'obtenir le "Excel est en attente pour une autre application pour effectuer une action OLE." erreur encore et encore et Excel devient autrement ne répond pas complètement. La chose étrange est que si je le lance, étape par étape, tout fonctionne parfaitement jusqu'à la ligne où il ouvre le fichier (j'ai vérifié le chemin d'accès au fichier avec le débogueur, c'est correct).

OriginalL'auteur some_guy | 2013-08-28