je ne trouve pas comment accéder à la valeur d'un signet dans VBA pour le
modifier ; dans mes balbutiements j'en suis à
"ActiveDocument.Bookmarks("monsignet")", et... grand mystère !
En fait mon problème est le suivant :
- à l'ouverture d'un document je mets à jour un certain nombre de champs (champs
ASK associés à des signets) ;
- je souhaite récupérer la valeur d'un de ces champs pour en extraire une chaîne
de caractères et l'assigner à un autre champ que j'utilise à plusieurs endroits
dans ce document...
Merci d'avance (non, non... je reviendrai dire merci, promis !-)
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Kyrill
Bonsoir Pierre
Une question toute bête mais pourquoi dans votre document ne pas tout simplement insérer le signet par le champs REF monsignet
Sinon en vba peut etre monsignetb=monsigneta ( dans l'esprit et non dans la syntaxe ) Mais les adeptes des doigts dans le moteur pourrait etre plus precis
--
Bonne Journée
Kyrill (Bipède en station verticale) "Pierre Raguet" wrote in message news:eogb2e$bqm$
Bonjour,
je ne trouve pas comment accéder à la valeur d'un signet dans VBA pour le modifier ; dans mes balbutiements j'en suis à "ActiveDocument.Bookmarks("monsignet")", et... grand mystère ! En fait mon problème est le suivant : - à l'ouverture d'un document je mets à jour un certain nombre de champs (champs
ASK associés à des signets) ; - je souhaite récupérer la valeur d'un de ces champs pour en extraire une chaîne
de caractères et l'assigner à un autre champ que j'utilise à plusieurs endroits
dans ce document...
Merci d'avance (non, non... je reviendrai dire merci, promis !-)
Bonsoir Pierre
Une question toute bête mais pourquoi dans votre document ne pas tout
simplement insérer le signet par le champs REF monsignet
Sinon en vba peut etre monsignetb=monsigneta ( dans l'esprit et non dans la
syntaxe )
Mais les adeptes des doigts dans le moteur pourrait etre plus precis
--
Bonne Journée
Kyrill (Bipède en station verticale)
"Pierre Raguet" <pierre.raguet@fr.invalid> wrote in message
news:eogb2e$bqm$1@news.rd.francetelecom.fr...
Bonjour,
je ne trouve pas comment accéder à la valeur d'un signet dans VBA pour le
modifier ; dans mes balbutiements j'en suis à
"ActiveDocument.Bookmarks("monsignet")", et... grand mystère !
En fait mon problème est le suivant :
- à l'ouverture d'un document je mets à jour un certain nombre de champs
(champs
ASK associés à des signets) ;
- je souhaite récupérer la valeur d'un de ces champs pour en extraire une
chaîne
de caractères et l'assigner à un autre champ que j'utilise à plusieurs
endroits
dans ce document...
Merci d'avance (non, non... je reviendrai dire merci, promis !-)
Une question toute bête mais pourquoi dans votre document ne pas tout simplement insérer le signet par le champs REF monsignet
Sinon en vba peut etre monsignetb=monsigneta ( dans l'esprit et non dans la syntaxe ) Mais les adeptes des doigts dans le moteur pourrait etre plus precis
--
Bonne Journée
Kyrill (Bipède en station verticale) "Pierre Raguet" wrote in message news:eogb2e$bqm$
Bonjour,
je ne trouve pas comment accéder à la valeur d'un signet dans VBA pour le modifier ; dans mes balbutiements j'en suis à "ActiveDocument.Bookmarks("monsignet")", et... grand mystère ! En fait mon problème est le suivant : - à l'ouverture d'un document je mets à jour un certain nombre de champs (champs
ASK associés à des signets) ; - je souhaite récupérer la valeur d'un de ces champs pour en extraire une chaîne
de caractères et l'assigner à un autre champ que j'utilise à plusieurs endroits
dans ce document...
Merci d'avance (non, non... je reviendrai dire merci, promis !-)
Pierre Raguet
"Kyrill" a écrit dans le message de news:
Bonsoir Pierre
Une question toute bête mais pourquoi dans votre document ne pas tout simplement insérer le signet par le champs REF monsignet
Bonsoir,
Parce que je veux modifier ce qui a été saisi ; plus exactement j'ai un champ qui dépend de la valeur d'un autre champ saisi à l'ouverture du document.
Sinon en vba peut etre monsignetb=monsigneta ( dans l'esprit et non dans la syntaxe )
c'est la syntaxe qui me fait défaut, pas l'esprit (enfin, je crois !).
Mais les adeptes des doigts dans le moteur pourrait etre plus precis
--
Bonne Journée
Kyrill (Bipède en station verticale) "Pierre Raguet" wrote in message news:eogb2e$bqm$
Bonjour,
je ne trouve pas comment accéder à la valeur d'un signet dans VBA pour le modifier ; dans mes balbutiements j'en suis à "ActiveDocument.Bookmarks("monsignet")", et... grand mystère ! En fait mon problème est le suivant : - à l'ouverture d'un document je mets à jour un certain nombre de champs (champs
ASK associés à des signets) ; - je souhaite récupérer la valeur d'un de ces champs pour en extraire une chaîne
de caractères et l'assigner à un autre champ que j'utilise à plusieurs endroits
dans ce document...
Merci d'avance (non, non... je reviendrai dire merci, promis !-)
"Kyrill" <hnospambranchu@totomail.com> a écrit dans le message de news:
u38xlcMOHHA.324@TK2MSFTNGP06.phx.gbl...
Bonsoir Pierre
Une question toute bête mais pourquoi dans votre document ne pas tout
simplement insérer le signet par le champs REF monsignet
Bonsoir,
Parce que je veux modifier ce qui a été saisi ; plus exactement j'ai un champ
qui dépend de la valeur d'un autre champ saisi à l'ouverture du document.
Sinon en vba peut etre monsignetb=monsigneta ( dans l'esprit et non dans la
syntaxe )
c'est la syntaxe qui me fait défaut, pas l'esprit (enfin, je crois !).
Mais les adeptes des doigts dans le moteur pourrait etre plus precis
--
Bonne Journée
Kyrill (Bipède en station verticale)
"Pierre Raguet" <pierre.raguet@fr.invalid> wrote in message
news:eogb2e$bqm$1@news.rd.francetelecom.fr...
Bonjour,
je ne trouve pas comment accéder à la valeur d'un signet dans VBA pour le
modifier ; dans mes balbutiements j'en suis à
"ActiveDocument.Bookmarks("monsignet")", et... grand mystère !
En fait mon problème est le suivant :
- à l'ouverture d'un document je mets à jour un certain nombre de champs
(champs
ASK associés à des signets) ;
- je souhaite récupérer la valeur d'un de ces champs pour en extraire une
chaîne
de caractères et l'assigner à un autre champ que j'utilise à plusieurs
endroits
dans ce document...
Merci d'avance (non, non... je reviendrai dire merci, promis !-)
Une question toute bête mais pourquoi dans votre document ne pas tout simplement insérer le signet par le champs REF monsignet
Bonsoir,
Parce que je veux modifier ce qui a été saisi ; plus exactement j'ai un champ qui dépend de la valeur d'un autre champ saisi à l'ouverture du document.
Sinon en vba peut etre monsignetb=monsigneta ( dans l'esprit et non dans la syntaxe )
c'est la syntaxe qui me fait défaut, pas l'esprit (enfin, je crois !).
Mais les adeptes des doigts dans le moteur pourrait etre plus precis
--
Bonne Journée
Kyrill (Bipède en station verticale) "Pierre Raguet" wrote in message news:eogb2e$bqm$
Bonjour,
je ne trouve pas comment accéder à la valeur d'un signet dans VBA pour le modifier ; dans mes balbutiements j'en suis à "ActiveDocument.Bookmarks("monsignet")", et... grand mystère ! En fait mon problème est le suivant : - à l'ouverture d'un document je mets à jour un certain nombre de champs (champs
ASK associés à des signets) ; - je souhaite récupérer la valeur d'un de ces champs pour en extraire une chaîne
de caractères et l'assigner à un autre champ que j'utilise à plusieurs endroits
dans ce document...
Merci d'avance (non, non... je reviendrai dire merci, promis !-)
Anacoluthe
Bonjour !
'Pierre Raguet' nous a écrit ...
Parce que je veux modifier ce qui a été saisi ; plus exactement j'ai un champ qui dépend de la valeur d'un autre champ saisi à l'ouverture du document.
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.
Anacoluthe « Lire, c'est déchiffrer l'ambiguïté. » - Jean-Michel WYL
Bonjour !
'Pierre Raguet' nous a écrit ...
Parce que je veux modifier ce qui a été saisi ; plus exactement j'ai un champ
qui dépend de la valeur d'un autre champ saisi à l'ouverture du document.
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.
Anacoluthe
« Lire, c'est déchiffrer l'ambiguïté. »
- Jean-Michel WYL
Parce que je veux modifier ce qui a été saisi ; plus exactement j'ai un champ qui dépend de la valeur d'un autre champ saisi à l'ouverture du document.
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.
Anacoluthe « Lire, c'est déchiffrer l'ambiguïté. » - Jean-Michel WYL
Pierre Raguet
Merci beaucoup, j'y suis presque !
"Anacoluthe" a écrit dans le message de news: % [...]
mais ceci écrase le Range du signet et supprime le signet, d'où toute une gymnastique pour le conserver :
Ce qui m'inquiète c'est que j'ai le sentiment que j'aurais eu du mal à trouver ça tout seul...
Il faudra ensuite mettre à jour les références (champs REF)
Ce qui m'inquiète encore plus, c'est que même comment faire ça automatiquement je ne l'ai pas trouvé ! J'ai ajouté l'appel à votre code dans UpdateFields, ce qui me fait bien ce que je souhaite (à l'ouverture du document on rempli un certain nombre de champs, il y a un traitement en fonction des valeurs de certains de ces champs et placement du résultat dans le signet modifié), mais ensuite les références à ce signet ne sont pas mises à jour ; en faisant F9 ça remet à jour, mais j'aimerais éviter !
Merci pour le petit coup de pouce qui me manque (et comme c'est juste pour un besoin ponctuel, je ne saurai jamais si c'est l'aide en ligne ou mon cerveau qui est en cause... tant mieux...).
Merci beaucoup, j'y suis presque !
"Anacoluthe" <nopub_anacoluthe@Ouanadoo.fr> a écrit dans le message de news:
%232B2MvNOHHA.320@TK2MSFTNGP06.phx.gbl...
[...]
mais ceci écrase le Range du signet et supprime le signet, d'où toute
une gymnastique pour le conserver :
Ce qui m'inquiète c'est que j'ai le sentiment que j'aurais eu du mal à trouver
ça tout seul...
Il faudra ensuite mettre à jour les références (champs REF)
Ce qui m'inquiète encore plus, c'est que même comment faire ça automatiquement
je ne l'ai pas trouvé !
J'ai ajouté l'appel à votre code dans UpdateFields, ce qui me fait bien ce que
je souhaite (à l'ouverture du document on rempli un certain nombre de champs, il
y a un traitement en fonction des valeurs de certains de ces champs et placement
du résultat dans le signet modifié), mais ensuite les références à ce signet ne
sont pas mises à jour ; en faisant F9 ça remet à jour, mais j'aimerais éviter !
Merci pour le petit coup de pouce qui me manque (et comme c'est juste pour un
besoin ponctuel, je ne saurai jamais si c'est l'aide en ligne ou mon cerveau qui
est en cause... tant mieux...).
"Anacoluthe" a écrit dans le message de news: % [...]
mais ceci écrase le Range du signet et supprime le signet, d'où toute une gymnastique pour le conserver :
Ce qui m'inquiète c'est que j'ai le sentiment que j'aurais eu du mal à trouver ça tout seul...
Il faudra ensuite mettre à jour les références (champs REF)
Ce qui m'inquiète encore plus, c'est que même comment faire ça automatiquement je ne l'ai pas trouvé ! J'ai ajouté l'appel à votre code dans UpdateFields, ce qui me fait bien ce que je souhaite (à l'ouverture du document on rempli un certain nombre de champs, il y a un traitement en fonction des valeurs de certains de ces champs et placement du résultat dans le signet modifié), mais ensuite les références à ce signet ne sont pas mises à jour ; en faisant F9 ça remet à jour, mais j'aimerais éviter !
Merci pour le petit coup de pouce qui me manque (et comme c'est juste pour un besoin ponctuel, je ne saurai jamais si c'est l'aide en ligne ou mon cerveau qui est en cause... tant mieux...).
Circé
Bonjour Pierre,
Regarde l'exemple de la userform de la faq fait par anacoluthe, il y a justement ce cas de signets à mettre à jour :
"Anacoluthe" a écrit dans le message de news: % [...]
mais ceci écrase le Range du signet et supprime le signet, d'où toute une gymnastique pour le conserver :
Ce qui m'inquiète c'est que j'ai le sentiment que j'aurais eu du mal à trouver ça tout seul...
Il faudra ensuite mettre à jour les références (champs REF)
Ce qui m'inquiète encore plus, c'est que même comment faire ça automatiquement je ne l'ai pas trouvé ! J'ai ajouté l'appel à votre code dans UpdateFields, ce qui me fait bien ce que je souhaite (à l'ouverture du document on rempli un certain nombre de champs, il y a un traitement en fonction des valeurs de certains de ces champs et placement du résultat dans le signet modifié), mais ensuite les références à ce signet ne sont pas mises à jour ; en faisant F9 ça remet à jour, mais j'aimerais éviter !
Merci pour le petit coup de pouce qui me manque (et comme c'est juste pour un besoin ponctuel, je ne saurai jamais si c'est l'aide en ligne ou mon cerveau qui est en cause... tant mieux...).
Bonjour Pierre,
Regarde l'exemple de la userform de la faq fait par anacoluthe, il y a
justement ce cas de signets à mettre à jour :
"Anacoluthe" <nopub_anacoluthe@Ouanadoo.fr> a écrit dans le message de news:
%232B2MvNOHHA.320@TK2MSFTNGP06.phx.gbl...
[...]
mais ceci écrase le Range du signet et supprime le signet, d'où toute
une gymnastique pour le conserver :
Ce qui m'inquiète c'est que j'ai le sentiment que j'aurais eu du mal à
trouver ça tout seul...
Il faudra ensuite mettre à jour les références (champs REF)
Ce qui m'inquiète encore plus, c'est que même comment faire ça
automatiquement je ne l'ai pas trouvé !
J'ai ajouté l'appel à votre code dans UpdateFields, ce qui me fait bien ce
que je souhaite (à l'ouverture du document on rempli un certain nombre de
champs, il y a un traitement en fonction des valeurs de certains de ces
champs et placement du résultat dans le signet modifié), mais ensuite les
références à ce signet ne sont pas mises à jour ; en faisant F9 ça remet à
jour, mais j'aimerais éviter !
Merci pour le petit coup de pouce qui me manque (et comme c'est juste pour un
besoin ponctuel, je ne saurai jamais si c'est l'aide en ligne ou mon cerveau
qui est en cause... tant mieux...).
"Anacoluthe" a écrit dans le message de news: % [...]
mais ceci écrase le Range du signet et supprime le signet, d'où toute une gymnastique pour le conserver :
Ce qui m'inquiète c'est que j'ai le sentiment que j'aurais eu du mal à trouver ça tout seul...
Il faudra ensuite mettre à jour les références (champs REF)
Ce qui m'inquiète encore plus, c'est que même comment faire ça automatiquement je ne l'ai pas trouvé ! J'ai ajouté l'appel à votre code dans UpdateFields, ce qui me fait bien ce que je souhaite (à l'ouverture du document on rempli un certain nombre de champs, il y a un traitement en fonction des valeurs de certains de ces champs et placement du résultat dans le signet modifié), mais ensuite les références à ce signet ne sont pas mises à jour ; en faisant F9 ça remet à jour, mais j'aimerais éviter !
Merci pour le petit coup de pouce qui me manque (et comme c'est juste pour un besoin ponctuel, je ne saurai jamais si c'est l'aide en ligne ou mon cerveau qui est en cause... tant mieux...).
Pierre Raguet
Merci, ça m'a résolu mon problème. J'ai fait un truc pas très propre, mais qui a l'avantage de marcher. Si j'ajoute un ActiveDocument.Fields.Update comme dans l'exemple, ça boucle un peu vu que je l'appellerais de UpdatFields !-) Alors, plutôt que de refaire tout avec une UserForme (ce qui aurait été mieux...) j'ai ajouté un test sur les "Fields", pour ne mettre à jour que ceux de type wdFieldRef (parce que je ne sais pas repérer les champs qui font référence à "monsignet" !).
Donc ça marche, je ne touche plus à rien !!
Merci à vous deux.
"Circé" a écrit dans le message de news:
Bonjour Pierre,
Regarde l'exemple de la userform de la faq fait par anacoluthe, il y a justement ce cas de signets à mettre à jour :
"Anacoluthe" a écrit dans le message de news: % [...]
mais ceci écrase le Range du signet et supprime le signet, d'où toute une gymnastique pour le conserver :
Ce qui m'inquiète c'est que j'ai le sentiment que j'aurais eu du mal à trouver ça tout seul...
Il faudra ensuite mettre à jour les références (champs REF)
Ce qui m'inquiète encore plus, c'est que même comment faire ça automatiquement je ne l'ai pas trouvé ! J'ai ajouté l'appel à votre code dans UpdateFields, ce qui me fait bien ce que je souhaite (à l'ouverture du document on rempli un certain nombre de champs, il y a un traitement en fonction des valeurs de certains de ces champs et placement du résultat dans le signet modifié), mais ensuite les références à ce signet ne sont pas mises à jour ; en faisant F9 ça remet à jour, mais j'aimerais éviter !
Merci pour le petit coup de pouce qui me manque (et comme c'est juste pour un besoin ponctuel, je ne saurai jamais si c'est l'aide en ligne ou mon cerveau qui est en cause... tant mieux...).
Merci, ça m'a résolu mon problème.
J'ai fait un truc pas très propre, mais qui a l'avantage de marcher.
Si j'ajoute un ActiveDocument.Fields.Update comme dans l'exemple, ça boucle un
peu vu que je l'appellerais de UpdatFields !-)
Alors, plutôt que de refaire tout avec une UserForme (ce qui aurait été
mieux...) j'ai ajouté un test sur les "Fields", pour ne mettre à jour que ceux
de type wdFieldRef (parce que je ne sais pas repérer les champs qui font
référence à "monsignet" !).
Donc ça marche, je ne touche plus à rien !!
Merci à vous deux.
"Circé" <circe@aea.gr> a écrit dans le message de news:
mn.828d7d71245c6e70.46999@aea.gr...
Bonjour Pierre,
Regarde l'exemple de la userform de la faq fait par anacoluthe, il y a
justement ce cas de signets à mettre à jour :
"Anacoluthe" <nopub_anacoluthe@Ouanadoo.fr> a écrit dans le message de news:
%232B2MvNOHHA.320@TK2MSFTNGP06.phx.gbl...
[...]
mais ceci écrase le Range du signet et supprime le signet, d'où toute
une gymnastique pour le conserver :
Ce qui m'inquiète c'est que j'ai le sentiment que j'aurais eu du mal à
trouver ça tout seul...
Il faudra ensuite mettre à jour les références (champs REF)
Ce qui m'inquiète encore plus, c'est que même comment faire ça
automatiquement je ne l'ai pas trouvé !
J'ai ajouté l'appel à votre code dans UpdateFields, ce qui me fait bien ce
que je souhaite (à l'ouverture du document on rempli un certain nombre de
champs, il y a un traitement en fonction des valeurs de certains de ces
champs et placement du résultat dans le signet modifié), mais ensuite les
références à ce signet ne sont pas mises à jour ; en faisant F9 ça remet à
jour, mais j'aimerais éviter !
Merci pour le petit coup de pouce qui me manque (et comme c'est juste pour un
besoin ponctuel, je ne saurai jamais si c'est l'aide en ligne ou mon cerveau
qui est en cause... tant mieux...).
Merci, ça m'a résolu mon problème. J'ai fait un truc pas très propre, mais qui a l'avantage de marcher. Si j'ajoute un ActiveDocument.Fields.Update comme dans l'exemple, ça boucle un peu vu que je l'appellerais de UpdatFields !-) Alors, plutôt que de refaire tout avec une UserForme (ce qui aurait été mieux...) j'ai ajouté un test sur les "Fields", pour ne mettre à jour que ceux de type wdFieldRef (parce que je ne sais pas repérer les champs qui font référence à "monsignet" !).
Donc ça marche, je ne touche plus à rien !!
Merci à vous deux.
"Circé" a écrit dans le message de news:
Bonjour Pierre,
Regarde l'exemple de la userform de la faq fait par anacoluthe, il y a justement ce cas de signets à mettre à jour :
"Anacoluthe" a écrit dans le message de news: % [...]
mais ceci écrase le Range du signet et supprime le signet, d'où toute une gymnastique pour le conserver :
Ce qui m'inquiète c'est que j'ai le sentiment que j'aurais eu du mal à trouver ça tout seul...
Il faudra ensuite mettre à jour les références (champs REF)
Ce qui m'inquiète encore plus, c'est que même comment faire ça automatiquement je ne l'ai pas trouvé ! J'ai ajouté l'appel à votre code dans UpdateFields, ce qui me fait bien ce que je souhaite (à l'ouverture du document on rempli un certain nombre de champs, il y a un traitement en fonction des valeurs de certains de ces champs et placement du résultat dans le signet modifié), mais ensuite les références à ce signet ne sont pas mises à jour ; en faisant F9 ça remet à jour, mais j'aimerais éviter !
Merci pour le petit coup de pouce qui me manque (et comme c'est juste pour un besoin ponctuel, je ne saurai jamais si c'est l'aide en ligne ou mon cerveau qui est en cause... tant mieux...).
bahamu
BOnjour,
Il faut faire : Activedocument.bookmarks("MonSignet").Range.Text
On 15 jan, 17:45, "Pierre Raguet" wrote:
Bonjour,
je ne trouve pas comment accéder à la valeur d'un signet dans VBA pou r le modifier ; dans mes balbutiements j'en suis à "ActiveDocument.Bookmarks("monsignet")", et... grand mystère ! En fait mon problème est le suivant : - à l'ouverture d'un document je mets à jour un certain nombre de cha mps (champs ASK associés à des signets) ; - je souhaite récupérer la valeur d'un de ces champs pour en extraire une chaîne de caractères et l'assigner à un autre champ que j'utilise à plusie urs endroits dans ce document...
Merci d'avance (non, non... je reviendrai dire merci, promis !-)
BOnjour,
Il faut faire : Activedocument.bookmarks("MonSignet").Range.Text
On 15 jan, 17:45, "Pierre Raguet" <pierre.rag...@fr.invalid> wrote:
Bonjour,
je ne trouve pas comment accéder à la valeur d'un signet dans VBA pou r le
modifier ; dans mes balbutiements j'en suis à
"ActiveDocument.Bookmarks("monsignet")", et... grand mystère !
En fait mon problème est le suivant :
- à l'ouverture d'un document je mets à jour un certain nombre de cha mps (champs
ASK associés à des signets) ;
- je souhaite récupérer la valeur d'un de ces champs pour en extraire une chaîne
de caractères et l'assigner à un autre champ que j'utilise à plusie urs endroits
dans ce document...
Merci d'avance (non, non... je reviendrai dire merci, promis !-)
Il faut faire : Activedocument.bookmarks("MonSignet").Range.Text
On 15 jan, 17:45, "Pierre Raguet" wrote:
Bonjour,
je ne trouve pas comment accéder à la valeur d'un signet dans VBA pou r le modifier ; dans mes balbutiements j'en suis à "ActiveDocument.Bookmarks("monsignet")", et... grand mystère ! En fait mon problème est le suivant : - à l'ouverture d'un document je mets à jour un certain nombre de cha mps (champs ASK associés à des signets) ; - je souhaite récupérer la valeur d'un de ces champs pour en extraire une chaîne de caractères et l'assigner à un autre champ que j'utilise à plusie urs endroits dans ce document...
Merci d'avance (non, non... je reviendrai dire merci, promis !-)