Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

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

3 réponses
Avatar
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

3 réponses

Avatar
Kyrill
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" a écrit dans le message de news:

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




Avatar
EmanuelL
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" a écrit dans le message de news:

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


Avatar
alounv
Le mardi 18 Mars 2008 à 10:42 par 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
Merci pour cette réponse très claire, ca vient de me sauver la vie. Bon plus qu'a faire la mise à jour automatique des champs se référants au signet.