Microsoft 365 Champ sur word > Saisie automatique signet selon tableau excel

Anthonymctm

XLDnaute Occasionnel
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.

Page 1 : en mode formulaire je renseigne une chaine de caractère
Sur un fichier excel, j'ai un tableau dont une colonne 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)

On peut faire ça en maccro si vous voulez, c'est probablement le plus simple d'ailleurs.


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


Merci ! ;)
 

Hasco

XLDnaute Barbatruc
Repose en paix

Anthonymctm

XLDnaute Occasionnel
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 :

Code:
Sub test()
MsgBox ActiveDocument.FormFields("immat").Result
End Sub

Sur excel (si je tape l'immat en dur pour l'instant):
VB:
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
 

Anthonymctm

XLDnaute Occasionnel
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

VB:
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
 

Pièces jointes

  • KCtrVFVyCco_Doc2.docm
    22.8 KB · Affichages: 4

Anthonymctm

XLDnaute Occasionnel
SVP le forum, j'ai besoin d'aide, je pense que ça doit pas être bien compliqué.
Il me faudrait juste le début pour que je puisse continuer

Une autre façon de faire serait de créer un onglet sur le Excel avec les rechercheX et j'ai plus qu'à dire A1 = immat et ensuite mes autres signets = valeur de B1, C1, etc
 
Dernière édition:

Anthonymctm

XLDnaute Occasionnel
Ok ! Je tiens quelque chose ! :cool:
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
 

Pièces jointes

  • NOTICE D'INSTRUCTION - TEST2.docm
    32.6 KB · Affichages: 3
  • Classeur1.xlsx
    12.9 KB · Affichages: 2

Discussions similaires

Statistiques des forums

Discussions
315 127
Messages
2 116 539
Membres
112 774
dernier inscrit
Foudil59