VBA: Récupération la valeur d'un signet

Le
EmanuelL
Bonjour à Tous,

Comment peut-on par VBA affecter la valeur d'un signet dans une
variable?

Merci d'avance.

--

*!* --
EmanuelL
Membre d'AtoutFox
www.atoutfox.org
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Kyrill
Le #1787945
Bonjour Emmanuel

ci-joint une réponse faite en son temps par Anacoluthe

"Les signets (bookmarks) de Word sont de nature double :
- Un signet est d'abord un /emplacement/ dans un document
cet emplacement peut être vide ou englober une zone continue (Range)
du document. Les signets peuvent être repérés dans le document
sous forme de crochets [ ] gris (Outils/Options/Affichage/Signets)
- Un signet peut aussi être une /variable/ interne contenant du texte
exemple { SET Toto "Ceci est le texte du signet toto" }
référencé par { REF Toto }
Si vous 'affichez' les signets, vous voyez un signet vide ][
à l'emplacement du champ SET

Cette double nature 'historique' des signets Word n'est certainement
pas une bonne chose. Elle amène souvent confusions et erreurs.


En vba pour modifier le contenu d'un signet on utilise la syntaxe :
ActiveDocument.Bookmarks("toto").Range.Text = "Nouvelle valeur pour Toto"
mais ceci écrase le Range du signet et supprime le signet, d'où toute
une gymnastique pour le conserver :


Public Sub RemplirSignet(S As String, T As String)
' Remplit le signet S avec le texte T sans détruire S
On Error GoTo rien
Dim Place As Long
Place = ActiveDocument.Bookmarks(S).Range.Start
ActiveDocument.Bookmarks(S).Range.Text = T
ActiveDocument.Bookmarks.Add Name:=S, _
Range:¬tiveDocument.Range(Place, Place + Len(T))
rien:
End Sub


Il faudra ensuite mettre à jour les références (champs REF) au
signet modifié. Notez que vous aurez perdu vos champs ASK
placés initialement dans ces signets. "


--
Bonne journée

Kyrill

Pensez environnement !
Imprimez ce mail uniquement si c'est nécessaire
"EmanuelL"
Bonjour à Tous,

Comment peut-on par VBA affecter la valeur d'un signet dans une variable?

Merci d'avance.

--

*!* -----------------------------------
EmanuelL
Membre d'AtoutFox
www.atoutfox.org




EmanuelL
Le #1787944
Merci Kyrill de votre éclairage.
Je laisse tomber la solution avec le signet car je viens de trouver une
autre solution qui correspond à ma question plus-haut.

Voir la solution au fil plus-haut.

Bonne journée à vous aussi, merci.


Kyrill a pensé très fort :
Bonjour Emmanuel

ci-joint une réponse faite en son temps par Anacoluthe

"Les signets (bookmarks) de Word sont de nature double :
- Un signet est d'abord un /emplacement/ dans un document
cet emplacement peut être vide ou englober une zone continue (Range)
du document. Les signets peuvent être repérés dans le document
sous forme de crochets [ ] gris (Outils/Options/Affichage/Signets)
- Un signet peut aussi être une /variable/ interne contenant du texte
exemple { SET Toto "Ceci est le texte du signet toto" }
référencé par { REF Toto }
Si vous 'affichez' les signets, vous voyez un signet vide ][
à l'emplacement du champ SET

Cette double nature 'historique' des signets Word n'est certainement
pas une bonne chose. Elle amène souvent confusions et erreurs.


En vba pour modifier le contenu d'un signet on utilise la syntaxe :
ActiveDocument.Bookmarks("toto").Range.Text = "Nouvelle valeur pour Toto"
mais ceci écrase le Range du signet et supprime le signet, d'où toute
une gymnastique pour le conserver :


Public Sub RemplirSignet(S As String, T As String)
' Remplit le signet S avec le texte T sans détruire S
On Error GoTo rien
Dim Place As Long
Place = ActiveDocument.Bookmarks(S).Range.Start
ActiveDocument.Bookmarks(S).Range.Text = T
ActiveDocument.Bookmarks.Add Name:=S, _
Range:¬tiveDocument.Range(Place, Place + Len(T))
rien:
End Sub


Il faudra ensuite mettre à jour les références (champs REF) au
signet modifié. Notez que vous aurez perdu vos champs ASK
placés initialement dans ces signets. "


--
Bonne journée

Kyrill

Pensez environnement !
Imprimez ce mail uniquement si c'est nécessaire
"EmanuelL"
Bonjour à Tous,

Comment peut-on par VBA affecter la valeur d'un signet dans une variable?

Merci d'avance.

--

*!* -----------------------------------
EmanuelL
Membre d'AtoutFox
www.atoutfox.org





--

*!* -----------------------------------
EmanuelL
Membre d'AtoutFox
www.atoutfox.org


Publicité
Poster une réponse
Anonyme