Via une une macro, vous utilisez un signet auparavant créé dans le document afin de positionner une texte à unendroit précis. C'est souvent le cas pour des Userforms où le contenu de chaque contrôle du Userform doit s'insérer à divers endroits du document.

Le problème est que, une fois le texte inséré grâce à la macro à l'endroit du signet, le signet disparaît. Si vous relancez la macro, forcément vous obtenez une erreur.

Voici donc une fonction qu'on appellera dans la macro, pour chaque signet, et qui permettra de relancer la macro autant de fois que l'on change d'avis !

 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

Voici un exemple de macro qui va utiliser cette fonction. Cette macro s'exécute sur l'appui d'un bouton de commande d'un Userform et positionne le contenu de deux zones de texte (TextBox1 et Textbox2) à l'endroit des signets "signet_1" et "signet_2". Vous pourrez relancer la macro et changer le contenu des zones de texte du Userform. 

Private Sub CommandButton1_Click()
Dim B As String 'signet
= TextBox1.Value
RemplirSignet "signet_1", B

= TextBox2.Value
RemplirSignet "signet_2", B

End Sub
 

 

Statistiques

Aujourd'hui36
Hier1880
Cette semaine1916
Total depuis 20049829348

4
visiteurs actuellement en ligne