Utilisation du late binding avec les champs références d'un doc word

Bonjour,

Afin de faire fonctionner mon classeur sur des versions antérieur d'office, j'ai transformer mes déclarations de variables (early binding) en objets (late binding).

A partir de ce classeur, j'essais de rafraîchir des champs de références dans un document Word généré avec du VBA.

Je n'ai pas réussi a transformer le code suivant en late binding:

Dim objWord As Object
Set objWord = CreateObject("Word.Application")

Dim Fld As Field
With objWord.ActiveDocument
  For Each Fld In .Fields
      If Fld.Type = wdFieldRef Then Fld.Update
Next
End With

Merci de m'aider.

Bonjour,

Pour utiliser les liaisons tardives, il convient de re-déclarer les objets spécifiques de la librairie en simple "Object" et d'indiquer directement les valeurs des constantes spécifiques.

Ici Fld est un object et wdFieldRef = 3

Et si besoin, l'aide de MS nous indique les autres valeurs des autres constantes :

https://docs.microsoft.com/fr-fr/office/vba/api/word.wdfieldtype

D'où le code :

    Dim objWord As Object, Fld As Object

    Set objWord = CreateObject("Word.Application")
    With objWord.ActiveDocument
      For Each Fld In .Fields
          If Fld.Type = 3 Then Fld.Update
        Next
    End With

(non testé, mais ça devrait être un truc dans ce genre)

Pierre

Merci ça fonctionne parfaitement!

Rechercher des sujets similaires à "utilisation late binding champs references doc word"