Bonjour à tous
bravo pour ce site et ce forum, qui me dépanne bien dans mes activités.
J'utilise cette fonction afin de modifier un signet existant et le recréer aussitôt. Il fonctionne très bien si mon signet est dans le corps principal de mon fichier word. Cependant, comme mentionné dans l'intitulé de ce message, je souhaiterai également le faire fonctionner pour les signets de l'entête de mon document. Seulement je n'arrive pas à l'adapter.
le problème est en ligne :
Set MyRng = ActiveDocument.Range(Start:=intI, End:=intI + Len(stTexte))
Je suppose que l'ActiveDocument n'est pas correct, puisque que mon signet est dans l'entête, donc il ne le trouve pas.
Merci de votre aide.
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 Function RemplacerTexteSignet(MyBM As Bookmark, stTexte As String) As Boolean 'Déclaration des variables 'intI pour le début de notre Bookmark Dim intI As Long 'stBM pour le nom de notre Bookmark Dim stBM As String 'un objet range pour le range de notre Bookmark Dim MyRng As Range 'Récupération du nom du signet stBM = MyBM.Name 'Récupération de la position de départ de notre signet intI = MyBM.Start 'Affectation du texte à notre Bookmark MyBM.Range.Text = stTexte 'Affectation de l'objet Range, où la position de départ est ' la même que pour le Bookmark et la fin sera le début augmenté ' de la longueur du texte Set MyRng = ActiveDocument.Range(Start:=intI, End:=intI + Len(stTexte)) ' Crée le Bookmark sur l'objet Range ActiveDocument.Bookmarks.Add stBM, MyRng Set MyRng = Nothing 'Affectation de la valeur True à la fonction RemplacerTexteSignet = True End Function






Répondre avec citation







Partager