Forum des développeurs  

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é.
Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Word > Contribuez

Réponse
 
Outils de la discussion
Vieux 31/01/2008, 22h04   #1 (permalink)
Responsable Word
 
Avatar de Heureux-oli
 
Date d'inscription: février 2006
Localisation: Morlanwelz (Carnières)
Âge: 44
Messages: 10 067
Par défaut Comment ne pas détruire un signet

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
Avec l'appel de la procédure :

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
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 18/03/2008, 12h27   #2 (permalink)
Modérateur
 
Avatar de ouskel'n'or
 
Date d'inscription: février 2005
Localisation: Une petite rue qui "avait" un merle
Messages: 11 573
Par défaut

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
Appel de la procédure :
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
Tu crées une instance de l'emplacement, de mon côté je crée une instance du signet
__________________
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 !!!
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation
Réponse

Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Word > Contribuez

 
Offres d' emploi informatique sur Lesjeudis.com


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide


Fuseau horaire GMT +1. Il est actuellement 21h50.


Publiez vos articles, tutoriels et cours et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones. Nous contacter