![]() |
| Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé. | |||||||
|
|||||||
![]() |
|
|
Outils de la discussion |
|
|
#1 (permalink) |
![]() Date d'inscription: février 2006
Localisation: Morlanwelz (Carnières)
Âge: 44
Messages: 10 067
|
Comment insérer du texte dans un signet sans le détruire.
Insérer du texte dans un signet détruit ce signet, mais si l'on mémorise la position de départ du signet et l'on calcule la position de fin du signet, il est possible de remettre le signet sur le texte que l'on vient d'insérer. On n'évite pas la destruction, mais l'on remet le signet sur son emplacement de départ. Code :
Public Sub RemplacerBM(idBM As Integer, TexteBM As String) Dim bs As Integer Dim stTemp As String Dim stBM As String Dim rng As Range 'Détection de la position de début du signet bs = ActiveDocument.Bookmarks(idBM).Start 'Récupération du nom du signet avent destruction stBM = ActiveDocument.Bookmarks(idBM).Name 'Ecriture du texte ActiveDocument.Bookmarks(idBM).Range.Text = TexteBM 'Affectation d'une plage de document à un objet range 'Le départ bs et la fin étant bs augmenté de la longueur du texte inséré Set rng = Range(Start:=bs, End:=bs + Len(TexteBM)) 'Ajout du Signet sur la plage de document Selection.Bookmarks.Add Name:=stBM, Range:=rng End Sub Code :
Sub InsererTexte() RemplacerBM 1, "Mon texte à moi" End Sub
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ? Ne posez pas de question par MP, c'est inutile. Les rubriques Office recrutent. Ma page d'accueil Consultez nos FAQ !! Word ; Access ; Outlook ; Excel ; PowerPoint ; SharePoint Si vous pensez que certains sujets manquent dans la FAQ, aidez nous ! Des images |
|
|
|
|
|
#2 (permalink) |
![]() Date d'inscription: février 2005
Localisation: Une petite rue qui "avait" un merle
Messages: 11 573
|
J'avais une solution similaire et comme abondance de bien ne nuit pas...
Code :
Sub Remplacer(signet As Bookmark, LeMot As String) Dim deb As Integer, fin As Integer, Nom As String deb = signet.Start 'début du signet fin = signet.End 'fin du signet Nom = signet.Name 'nom du signet signet.Range.Text = LeMot 'remplace le texte contenu With ActiveDocument.Range(Start:=deb, End:=fin) 'emplacement du signet .Bookmarks.Add Name:=Nom 'ajoute le signet End With End Sub Code :
Sub appel() Dim signet As Bookmark, LeMot As String Set signet = ActiveDocument.Bookmarks("blabla") 'blabla : nom du signet LeMot = "coucou " 'Chaîne de caractère destiné à remplacer le contenu du signet Remplacer signet, LeMot End Sub
__________________
Je...ne...réponds...pas....aux...questions...techniques... par...mp La recherche (VBA-E) : Le Forum, La FAQ, Les cours et tutoriels, Contribuez, Les Sources et... l'Aide en ligne !!!
|
|
|
|
![]() |
![]() |
||
Comment ne pas détruire un signet
|
||
Offres d'
emploi informatique
sur Lesjeudis.com
|
| Outils de la discussion | |
|
|