Utilisation des Champs dans Word VBA

  • Auteur de la discussion shakes003
  • Date de début

shakes003

Nouveau membre
Bonjour,

Je dois insérer du texte d'un fichier word via un autre fichier word contenant plusieurs champs. Cependant, je ne veux pas insérer mon texte par le numéro de l'item mais pas son nom propre.
Par exemple, si mon 1er champs se nomme champs1, je veux pas une écriture comme ceci :

objword.Documents.Fields.item(1).text = "toto"

mais remplacer item(1) par la vraie valeurs du champs (cad champs1 )car ces champs peuvent être amené à bouger et le champs1 ne sera pas forcement item(1) à chaque fois.

Ainsi j'aurai voulu quelque chose comme ceci mais cela ne fonctionne bien sur pas :

objword.Documents.Fields.item("Champs1").text = "toto"


Merci d'avance.
 

zeb

Modérateur
Salut,

Tu veux identifier tes champs par leur valeur ?
M'enfin, quelle idée d'avoir des champs, si tu connais d'avance leur valeur ?
 

shakes003

Nouveau membre
Salut,

Parce qu'on peut rajouter des champs et que les champs peuvent bouger. L'item ne sera pas forcement le même si je bouge mes champs.
La question est : Peut on le faire ?
 

zeb

Modérateur
Je n'ai pas tout compris. :gné:
Mais est-ce vraiment le principal ? :o

Tu cherches le champ qui contient "champ1".
Bon.

Le voici :
Code:
Option Explicit

Function GetFieldByValue(ByVal txt As String, Optional doc As Document = Nothing) As Field
    Dim fld  As Field
    If IsMissing(doc) Or doc Is Nothing Then Set doc = ActiveDocument
    
    For Each fld In doc.Fields
        If fld.Result.text = txt Then
            Set GetFieldByValue = fld
            Exit For
        End If
    Next
End Function
 

shakes003

Nouveau membre
Ce n'est pas exactement ce que je voulais mais ça fera l affaire merci bien.

J'ai encore un soucis avec les champs dans word.
Je veux insérer une image dans un champ Image de mon second fichier word mais il me mets une erreur.

Voici le code :

Objword.Documents(nomfichierword).Fields.item(1).oleformat.object.Picture = loadpicture(fichier),

J obtiens erreur :
Erreur exécution -2147418113(8000ffff)
La méthode picture de l objet IImage a échoué.

Cela fonctionne très bien si j insère l image sur le document word qui contient la macro. Mais sur un autre document word, ça plante.

Pouvez vous m'aider ?

Merci d'avance
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 128
Messages
6 717 850
Membres
1 586 373
Dernier membre
https://forum.tomshardwar
Partager cette page
Haut