Bonjour,
Je constitue des documents Word à partir de modèle (.DOT) et dans lesquels je dois substituer, non pas du texte par un autre, mais du texte par une image donnée...
Sur la base de ce qu'il y a dans la FAQ (merci bidou), j'ai adapté le code de recherche de texte. Celui-ci fait bien le bon nombre de recherches mais la substitution n'est pas comme attendue...l'image n'est pas située en lieu et place du texte qu'elle doit remplacer (le texte demeure à sa place dans le document et les images sont insérées au début du document)
Ci-après, un extrait du code...
J'ai bien essayé plusieurs façons avec ou sans le paramètre PhotoRange ci-dessus...mais rien n'y fait...et les aides de Word ainsi que la référence VB office ne sont pas trop claires sur le sujet...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 var Param1, Param2, Param3, Param4, Param5, Param6, Param7, ZoneDeRecherche : OleVariant; ..... Param1 := 0; ZoneDeRecherche := aOfficeApp.ActiveDocument.Content; // Id aOfficeApp.ActiveDocument.Range(Param1, Param1); Param1 := ChaineRecherche; Param2 := False; Param3 := True; Param4 := wdFindStop; Param5 := wdCharacter; Param6 := 1; repeat ZoneDeRecherche.Find.Execute(Param1,Param2,Param2,Param2,Param2,Param2,Param3,Param4,emptyparam,emptyparam,emptyparam); if ZoneDeRecherche.Find.Found then begin PhotoLink := False; PhotoSaveWith := True; // PhotoRange := ZoneDeRecherche.Find.Parent; // aOfficeApp.ActiveDocument.InlineShapes.AddPicture(NomFichierImage, PhotoLink, PhotoSaveWith, PhotoRange); aOfficeApp.Selection.InlineShapes.AddPicture(NomFichierImage, PhotoLink, PhotoSaveWith, EmptyParam); end; until not ZoneDeRecherche.Find.Found;![]()
Il semble que le texte recherché, même s'il a été trouvé, ne constitue pas la sélection courante après le find.execute ....![]()
Je pense que c'est juste une histoire de sélection courante...mais je ne sais plus où chercher...
Quelqu'un aurait-il la solution ?
Merci d'avance![]()
Partager