Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Word > Contribuez
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 31/01/2008, 22h04   #1
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 354
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 354
Points : 29 270
Points : 29 270
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 :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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 :
1
2
3
4
5
6
7
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 ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2008, 12h27   #2
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
J'avais une solution similaire et comme abondance de bien ne nuit pas...

Code :
1
2
3
4
5
6
7
8
9
10
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 :
1
2
3
4
5
6
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
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h28.


 
 
 
 
Partenaires

Hébergement Web