Champ sur word > Saisie automatique signet selon tableau Excel

Bonjour le forum,

Je débute un peu en formulaire Word. J'ai un fichier word dont j'aimerais que plusieurs signets se remplissent automatiquement selon un champ que je remplis au début et dont les informations issu de ce champ sont présentes sur un fichier excel.

Dans l'idée :
Page 1 : en mode formulaire je renseigne une chaine de caractère
Sur un fichier excel, j'ai un tableau dans lequel une collonne dispose de la cellule correspond à cette chaine de caractères
Sur les autres pages : J'ai plusieurs signets qui prennent la valeur correspondant à une colonne donnée sur la même que ma chaine de caractère (fonction recherchex quoi)

J'arrive à faire une petite macro de recherche sur mon fichier excel et une autre sur mon word, il faudrait maintenant que mes variables soit connectées et lancées depuis word

Sur word mon "immat" est renseigné dans un formulaire texte, je le récupère en immat :
Sub test()
MsgBox ActiveDocument.FormFields("immat").Result
End Sub
Sur excel (si je tape l'immat en dur pour l'instant):
Sub JeRecherche()
Dim Ligne As Integer

immat = "201907009"

For Ligne = 3 To Range("m99999").End(xlUp).Row

    If Range("M" & Ligne) = immat Then

        NCC = Range("c" & Ligne)
        MsgBox NCC
        Exit Sub

    End If

Next Ligne
MsgBox "Immat non trouvée"
End Sub
Faudrait ensuite que je comprenne comment récupérer ce NCC est l'inscrire dans un signet.

Dans l'idéal j'aimerai aussi que des images se modifient selon cette chaine de caractère.

Merci !
Ok, je parviens à faire ma recherche sur excel depuis word.
J'obtiens les bonnes données mais je ne parviens ni à obtenir la données initial immat dans le signet, seulement les caractères qui suivent, ni à écrire la valeur obtenue du signet
texte1 = ActiveDocument.Range(ActiveDocument.Bookmarks("immat").Range.Start, ActiveDocument.Bookmarks("immat").Range.End)
Texte2 = ActiveDocument.Range(ActiveDocument.Bookmarks("NCC").Range.Start, ActiveDocument.Bookmarks("NCC").Range.End)
texte = ActiveDocument.Range(ActiveDocument.Bookmarks("immat").Range.Start, ActiveDocument.Bookmarks("NCC").Range.End)
texte3 = Replace(Replace(Replace(texte, texte1, ""), "FORMTEXT", ""), vbLf, "")
texte5 = Replace(Texte2, "FORMTEXT ", "")
Texte6 = Replace(Texte2, texte5, "")
immat = Mid(texte3, 3, Len(Texte6))
Set DocExel = CreateObject("excel.application")
    Set Wkb = DocExel.Workbooks.Open(ActiveDocument.Path & "\" & "Classeur1.xlsx")
DocExel.Visible = True
With Wkb
ligne = 0
On Error Resume Next
ligne = .Sheets("Feuil1").Columns("M:M").Find(What:=immat, After:=.Sheets("Feuil1").Range("M2"), LookIn:=Xlvalues, LookAt:=xlwhole).Row
If ligne > 0 Then
NCC = .Sheets("Feuil1").Range("C" & ligne)
Else
NCC = ""
End If
End With
Wkb.Close True
DocExel.Quit
Selection.GoTo What:=wdGoToBookmark, Name:="NCC"
Selection.MoveDown Unit:=wdLine, Count:=1, Extend:=wdMove
Selection.TypeText Text:=NCC
End Sub

Bonjour Anthony47

Pourquoi ne pas faire un simple publipostage !?

@+

Bonjour Bruno,

Vous pouvez m'en dire un peu plus ?
J'y connais pas grand chose en word, c'est surtout Excel que je maitrise à peu près.

Ok ! Je tiens quelque chose !

Sur mon fichier excel je prépare les données à récupérer sur un autre onglet (avec des rechercheX)
Ensuite je modifie la valeur de mes champs texte avec signet selon la valeur du fichier Excel.

Il faut juste que j'arrive à écrire le contenu du signet immat dans la cellule B2
Egalement je ne sais pas comment mettre à jour tous les champs par VBA

7classeur1.xlsx (12.95 Ko)

Bonsoir,

Dans votre fichier Word, il est plus approprié d'utiliser des champs de fusion et non des signets. En donnant à chaque champ de fusion, le nom de la colonne correspondante de votre fichier Excel, cela permettra un appariement simple au niveau du code.

fichier Word ; menu Insertion --> Groupe Zone de texte --> Bouton Composants Quick Part --> Champ --> ChampFusion

Au niveau de votre fichier Excel, le plus simple est de nommer vos cellules source avec le nom de la colonne correspondante :

menu Formule --> Gestionnaire de noms

ci_jointe proposition d'une macro injection et fichiers correspondants

17affaires.xlsx (12.78 Ko)
Rechercher des sujets similaires à "champ word saisie automatique signet tableau"