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

Publipostage / adresse du lien hypertexte

7 réponses
Avatar
Christophe
Bonjour:

Dans le cas d'un publipostage email dans MS Word 2003 ou 2007 est
possible ou non de consid=E9rer l'adresse du lien hyperttexte comme
variable diff=E9rente du texte affich=E9.

Si par exemple, j'ai deux variables WEBTEXT (Google) et WEBADDRESS
(http://www.google) dans excel, obtenir comme r=E9sultat de la fusion
"Google" dans le corps de l'email et http://www.google.com comme
adresse de ce lien hypertexte.

Remerciements.

Christophe

7 réponses

Avatar
Anacoluthe
Bonjour !

'Christophe' nous a écrit ...
Dans le cas d'un publipostage email dans MS Word 2003 ou 2007 est
possible ou non de considérer l'adresse du lien hyperttexte comme
variable différente du texte affiché.
Si par exemple, j'ai deux variables WEBTEXT (Google) et WEBADDRESS
(http://www.google) dans excel, obtenir comme résultat de la fusion
"Google" dans le corps de l'email et http://www.google.com comme
adresse de ce lien hypertexte.


Non, les champs Hyperlink ne 'passent' pas la fusion Word.

Il faut fusionner les deux parties du lien (texte et adresse)
avec des marques puis recomposer chaque lien avec une macro

Anacoluthe
« C’est par la séparation qu’on évalue la force des liens. »
- Gérard GEVRY

Avatar
Christophe
Bonjour Anacoluthe:

Merci de ta réponse.

J'ai obtenu sur un autre forum une réponse (voir ci-dessous) qui me
semble très interessante. Pour l'instant, j'ai une erreur de
compilation mais meme si je ne comprends pas le detail de cette macro
mon sixième sens me dit que je suis pas loin de la solution.

Christophe
---------------------------------------------------------------------------- ----------------------------------
I think you have to use Word Mail Merge events for this. I have not
tested
this recently, but for example:

1. Create a new document, connect it to your data source, and insert
one
merge field and a bookmark named "mybm"


2. Open up the VBA Editor and
a. insert a class module.
b. name it EventClassModule in the properties box
c. Copy the following code into the module:


Public WithEvents App As Word.Application


Private Sub App_MailMergeBeforeRecordMerge(BYVal Doc As Document,
Cancel As
Boolean)
Dim dt as String
Dim lt as String
Dim h as Hyperlink
Dim r as Range


' set the range variable to our placeholder bookmark
Set r = Doc.Bookmarks("mybm").Range


' delete any existing text (this is needed for records after record
1)
r.Text = ""


' construct the link text that you want. I'm assuming your data
source
' has a field called WEBADDRESS for the link. NB, these field names
' are case-sensitive.
lt = Doc.MailMerge.DataSource.DataFields("WEBADDRESS")
' set up the display text that you want. I assuming you have a field
' called WEBTEXT
dt = Doc.MailMerge.DataSource.DataFields("WEBTEXT")


' insert the hyperlink you want
Set h = Doc.Hyperlinks.Add(Anchor:=r, Address=lt, TextToDisplay:=dt)


' Set mybm to "cover" the inserted link so it is easy to delete the
old
hyperlink


Doc.Bookmarks.Add Name:="mybm", Range:=h.Range


Set r = Nothing
Set h = Nothing


End Sub


3. Insert an ordinary module (the name does not matter) and insert
the
following code:


Dim x As New EventClassModule


Sub autoopen()
Set x.App = Word.Application
End Sub


4. Save and close the document. Open it to trigger the autoopen, then
perform a test merge.


NB, if you start changing the code you may find that you need to re-
run your
autoopen code again, and/or save/close/open the document. You should
realise
that
once you have enabled the events, they apply to any document until
either
you or
Word has disabled them again. This is why I do not particularly like
using
Events, but even so,
I suspect that this is the easiest way to perform this particular task
in
Word.
--
Peter Jamieson
Avatar
Anacoluthe
Bonjour !

'Christophe' nous a écrit ...
J'ai obtenu sur un autre forum une réponse (voir ci-dessous) qui me
semble très interessante. Pour l'instant, j'ai une erreur de
compilation mais meme si je ne comprends pas le detail de cette macro
mon sixième sens me dit que je suis pas loin de la solution.


Peter Jamieson utilise un évènement de publipostage : avant chaque
fusion d'enregistrement un lien HT du document principal est réécrit
à partir des données de l'enregistrement en cours. C'est élégant
mais il faut bien maitriser les événements d'application Word.
Où se situe votre erreur de compilation et quelle en est sa nature?

Personnellement j'aurais simplement fusionné les deux champs:
###{ Mergefield WebText }###{ Mergefield WebAddress }###
puis j'aurais appliqué à tout le document de fusion une macro
remplaçant ###X###Y### par un champ HYPERLINK Y avec TextToDisplay X
Cette macro 'a postériori' aurait l'avantage de pouvoir fusionner
plusieurs liens HT par enregistrement si besoin.
Cette macro pourrait être automatique en fin de fusion si on
garde le principe d'une gestion des événements de publipostage
comme le propose Peter.

Anacoluthe
« C’est par la séparation qu’on évalue la force des liens. »
- Gérard GEVRY

Avatar
Christophe
Bonsoir Anacoluthe et merci.

Ta solution me semble très astucieuse. Entre temps, j'ai découvert un
add-in Excel TRES performant et très simple à utiliser permettant
l'envoi d'emails personnalisés en nombre en permettant de fusionner
des champs dans le code source html.

Remerciements et sincères salutations.

Christophe

P.S. Je suis souvent epoustouflé par la compétence et la créativité de
nombreux participants au forum mais suis carrément abasourdi par la
capacité que ces mêmes personnes ont à comprendre les questions posé es
e't les miennes en particulier:-)
Avatar
Circé
Bonjour Christophe,

Puisque cet addin est si performant, ce serait sympa de nous dire où on
le trouve... Je pourrais y faire un lien dans la faq.

Bonne nuit.

Circé
http://faqword.free.fr

Christophe avait soumis l'idée :
Bonsoir Anacoluthe et merci.

Ta solution me semble très astucieuse. Entre temps, j'ai découvert un
add-in Excel TRES performant et très simple à utiliser permettant
l'envoi d'emails personnalisés en nombre en permettant de fusionner
des champs dans le code source html.

Remerciements et sincères salutations.

Christophe

P.S. Je suis souvent epoustouflé par la compétence et la créativité de
nombreux participants au forum mais suis carrément abasourdi par la
capacité que ces mêmes personnes ont à comprendre les questions posées
e't les miennes en particulier:-)


Avatar
Christophe
Bonjour Circé:

Je ne l'avais pas indiqué par ce que c'est un add-in Excel. Il permet
de faire du publipostage email de manière très très simple et pourtant
il intègre de toutes les fontionnalités, y compris avancées et même
rares, que l'on peut espérer d'un tel outil. Il s'agit de XL Email
Manager. Pour plus d'infos http://www.bigredconsulting.com/aboutemailmanage r.htm
L'essayer c'est l'adopter.

Bonne journée.

Christophe
Avatar
Circé
Bonjour Christophe,

Merci pour le lien. Même un addin Excel peut être utile aux wordiens,
la preuve !! ;))

Cela dit, je trouve quand même assez agaçant de devoir payer 49$ pour
pallier les manques de Word...

Bon, profitons-en avant que le dollar ne remonte !!! ;)))

Circé
http://faqword.free.fr

Le 29/11/2007, Christophe a supposé :
Bonjour Circé:

Je ne l'avais pas indiqué par ce que c'est un add-in Excel. Il permet
de faire du publipostage email de manière très très simple et pourtant
il intègre de toutes les fontionnalités, y compris avancées et même
rares, que l'on peut espérer d'un tel outil. Il s'agit de XL Email
Manager. Pour plus d'infos
http://www.bigredconsulting.com/aboutemailmanager.htm L'essayer c'est
l'adopter.

Bonne journée.

Christophe