VBA WORD ne pas supprimer les signets
Résolu
Bibi
-
Bibi -
Bibi -
Bonjour bonjour!
Voilà j'ai un problème et je ne trouve pas la solution...
J'ai un modèle word avec un signet. Je lance une macro, avec un UserForm1 et dans ce UserForm1, il y a un TextBox1. J'aimerais que le texte que j'écris dans la TextBox vienne remplacer le texte (et seulement le texte) du signet
Mon code pour l'instant :
Private Sub CommandButton1_Click()
ActiveDocument.Bookmarks("signet").Range.Text = TextBox1.Value
Unload Me
End Sub
Alors le text qui se trouve dans le signet est bien remplacé, mais le signet est supprimé? Est-ce possible de conserver le signet (si par exemple je veux remodifier)?
j'éspère que je n'ai pas été trop confus, et merci d'avance pour le temps que vous m'accorderez
Voilà j'ai un problème et je ne trouve pas la solution...
J'ai un modèle word avec un signet. Je lance une macro, avec un UserForm1 et dans ce UserForm1, il y a un TextBox1. J'aimerais que le texte que j'écris dans la TextBox vienne remplacer le texte (et seulement le texte) du signet
Mon code pour l'instant :
Private Sub CommandButton1_Click()
ActiveDocument.Bookmarks("signet").Range.Text = TextBox1.Value
Unload Me
End Sub
Alors le text qui se trouve dans le signet est bien remplacé, mais le signet est supprimé? Est-ce possible de conserver le signet (si par exemple je veux remodifier)?
j'éspère que je n'ai pas été trop confus, et merci d'avance pour le temps que vous m'accorderez
A voir également:
- VBA WORD ne pas supprimer les signets
- Supprimer une page word - Guide
- Supprimer rond bleu whatsapp - Guide
- Word 2013 - Télécharger - Traitement de texte
- Tableau word - Guide
- Espace insécable word - Guide
1 réponse
Bonjour,
C'est effectivement un problème.
Le mieux est de faire une fonction qui va permettre de remplacer le signet sans le détruire :
Et ta macro :
et bien sûr, tu peux utiliser cette fonction avec n'importe quelle valeur récupérée de ton Userform, il suffira de changer simplement dans ta macro le nom du signet.
m@rina
C'est effectivement un problème.
Le mieux est de faire une fonction qui va permettre de remplacer le signet sans le détruire :
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))
sortie:
End Function
Et ta macro :
Private Sub CommandButton1_Click()
Dim B As String 'ton signet
B=TextBox1.Value
RemplirSignet "signet", B
Unload Me
End Sub
et bien sûr, tu peux utiliser cette fonction avec n'importe quelle valeur récupérée de ton Userform, il suffira de changer simplement dans ta macro le nom du signet.
m@rina
Bibi
Mille merci M@rina! ça fonctionne à la perfection!