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

appliquer une fonction progammée à un champ de fusion.

3 réponses
Avatar
Philippe
Bonjour,

Je souhaite, dans le cadre d'un publipostage, appliquer=20
une fonction (programm=E9e en VBA) =E0 un champ de fusion.=20
J'ai essay=E9 avec :
{ =3D Mafonction(MonChamp) }
mais il semble que cette syntaxe ne marche qu'avec un=20
nombre limit=E9 de fonctions pr=E9d=E9finies (SOMME, MIN, MAX,=20
etc...) ou avec des op=E9rateurs arithm=E9tiques, mais pas=20
avec des fonctions d=E9finies par l'utilisateur.

Je pr=E9cise que la fonction est complexe et ne peut =EAtre=20
juste remplac=E9e par des {IF ...}=20

Quelqu'un a t'il une id=E9e ?

Merci d'avance.

Philippe.

3 réponses

Avatar
Anacoluthe
Bonjour !

'Philippe' nous a écrit ...
Je souhaite, dans le cadre d'un publipostage, appliquer
une fonction (programmée en VBA) à un champ de fusion.
J'ai essayé avec :
{ = Mafonction(MonChamp) }


Dans Word il y a les champs qui datent de bien avant VBA
et il y a VBA : entre les deux c'est chiens et chats.
Votre syntaxe fait penser à Excel : rien de tel dans Word :-(

Je précise que la fonction est complexe et ne peut être
juste remplacée par des {IF ...}
Quelqu'un a t'il une idée ?


Le publipostage Word est qqch de très simpliste.
Dans 99,99 % des cas la solution à votre problème passe
par un autre champ calculé _dans_la_source_ !!!!
ou si la source n'est pas modifiable directement
dans une source Excel intermédiaire liée dynamiquement
à la source primaire de données. C'est très simple.

Dans les 0,01 % des cas restants où il faut que vba
travaille /dans/ word on utilise les événements de
publipostage. Mais c'est très rare et généralement
le fait de ceux qui aiment se compliquer la vie.

Liaisons Echanges Interactions Office : y'a un bouquin
qui vient de sortir....

Anacoluthe
« Il est très difficile d'imaginer quelque chose de simple. »
- Pierre MAC ORLAN

Avatar
Rebonjour Anacoluthe et merci pour votre réponse.

voici quelques info supplementaires :
Une application (externe) génère le fichier source, ouvre
le doc word et lance la fusion...
La seule chose sur laquelle je puisse intervenir, c'est le
document type.
Voilà pourquoi,Il faut que je trouve une solution à ce
niveau.

Cordialement
Philippe.

-----Message d'origine-----
Bonjour !

'Philippe' nous a écrit ...
Je souhaite, dans le cadre d'un publipostage, appliquer
une fonction (programmée en VBA) à un champ de fusion.
J'ai essayé avec :
{ = Mafonction(MonChamp) }


Dans Word il y a les champs qui datent de bien avant VBA
et il y a VBA : entre les deux c'est chiens et chats.
Votre syntaxe fait penser à Excel : rien de tel dans
Word :-(


Je précise que la fonction est complexe et ne peut être
juste remplacée par des {IF ...}
Quelqu'un a t'il une idée ?


Le publipostage Word est qqch de très simpliste.
Dans 99,99 % des cas la solution à votre problème passe
par un autre champ calculé _dans_la_source_ !!!!
ou si la source n'est pas modifiable directement
dans une source Excel intermédiaire liée dynamiquement
à la source primaire de données. C'est très simple.

Dans les 0,01 % des cas restants où il faut que vba
travaille /dans/ word on utilise les événements de
publipostage. Mais c'est très rare et généralement
le fait de ceux qui aiment se compliquer la vie.

Liaisons Echanges Interactions Office : y'a un bouquin
qui vient de sortir....

Anacoluthe
« Il est très difficile d'imaginer quelque chose de
simple. »

- Pierre MAC ORLAN
.




Avatar
Anacoluthe
Bonjour !

'' nous a écrit ...
Rebonjour Anacoluthe et merci pour votre réponse.
voici quelques info supplementaires :
Une application (externe) génère le fichier source, ouvre
le doc word et lance la fusion...
La seule chose sur laquelle je puisse intervenir, c'est le
document type.
Voilà pourquoi,Il faut que je trouve une solution à ce
niveau.


Franchement la solution est à l' /application_(externe)/ :-)
Quand on ne veut/peut pas toucher à des applications anciennes
la technique des 'rustines' est en général catastrophique.
Obtenez en priorité que l'appli génère une source exploitable
et qu'elle soit elle-même paramétrable par la suite.
A la limite si la source actuellement générée est accessible,
récupérez-la dans Excel ou dans Access, appliquez vos
formules, puis utilisez cette 2ème source pour le publipostage.
Si vous êtes dans un régime de dictature où rien n'est plus
modifiable, placez vos champs de fusion entre des tags
dans votre document principal (des crochets par exemple)
puis faites une macro reprenant les éléments taggés dans
le document de /fusion/ cette fois (n'utilisez pas des signets,
ils passent mal la fusion). Tout ça est assez galère alors
qu'il suffirait d'avoir tout simplement les bonnes données
dans la source, non ?

Anacoluthe
« Il est très difficile d'imaginer quelque chose de simple. »
- Pierre MAC ORLAN