Bonjour à tous,
Je suis novice dans le VBA, je voudrais remplir des signets sans les détruire et sans qu'ils ne changent de position, à l'aide d'une UserForm. J'ai utilisé un code qui fonctionne bien (pour la partie remplir sans les détruire et sans les bouger à condition qu'ils soient dans le texte). Par contre, j'ai 3 signets dans un pied de page et lorsque je rempli ma UserForm, ils sont bien renseignés (à la bonne place). Si j'ai besoin à nouveau de les remplacer, ils ne se trouvent plus dans le pied de page. Comment pourrai-je les "verrouiller" pour ne plus qu'ils bougent de façon intempestive.
Voici ci-dessous le code.
sortie:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Public Function RemplirSignet(A As String, B As String) ' Remplit le signet A avec le texte B sans détruire A On Error GoTo sortie Dim Place As Long Place = ActiveDocument.Bookmarks(A).Range.Start ActiveDocument.Bookmarks(A).Range.Text = B ActiveDocument.Bookmarks.Add Name:=A, Range:=ActiveDocument.Range(Place, Place + Len(B))
D'avance Merci pour 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
26
27
28
29
30
31
32
33
34
35
36
37
38
39 End Function Private Sub CommandButton1_Click() Dim B As String 'signet B = TextBox1.Value RemplirSignet "SIGNET_REF_DOC", B 'dans pied de page B = TextBox2.Value RemplirSignet "SIGNET_REF_CODEUR1", B 'dans pied de page B = TextBox2.Value RemplirSignet "SIGNET_REF_CODEUR2", B 'dans pied de page B = TextBox2.Value RemplirSignet "SIGNET_REF_CODEUR3", B 'dans texte B = TextBox2.Value RemplirSignet "SIGNET_REF_CODEUR4", B 'dans texte B = TextBox3.Value RemplirSignet "SIGNET_PLAN_STOCKAGE1", B 'dans texte B = TextBox3.Value RemplirSignet "SIGNET_PLAN_STOCKAGE2", B 'dans texte B = TextBox4.Value RemplirSignet "SIGNET_PLAN_EMBALLAGE1", B 'dans texte B = TextBox4.Value RemplirSignet "SIGNET_PLAN_EMBALLAGE2", B 'dans texte B = TextBox5.Value RemplirSignet "SIGNET_PLAN_TRANSPORT1", B 'dans texte B = TextBox5.Value RemplirSignet "SIGNET_PLAN_TRANSPORT2", B 'dans texte End Sub
PS : J'ai essayé les codes que vous avez proposez. Celui de ouskel'n'or fonctionne mais il écrase les signets (je ne peux donc plus relancer ma Userform pour le faire à nouveau) et je n'ai pas réussi à faire fonctionner celui de Heureux-oli.
J'allai oublier de vous dire que je travaille sur Word2016.
Partager