[PUBLIPOSTAGE WORD] Calcul sur champ date : afficher année + 1
Fermé
julolamayo
Messages postés
5
Date d'inscription
dimanche 1 août 2021
Statut
Membre
Dernière intervention
3 août 2021
-
1 août 2021 à 07:08
brucine Messages postés 18317 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 20 décembre 2024 - 3 août 2021 à 09:25
brucine Messages postés 18317 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 20 décembre 2024 - 3 août 2021 à 09:25
A voir également:
- [PUBLIPOSTAGE WORD] Calcul sur champ date : afficher année + 1
- Publipostage mail - Accueil - Word
- Comment supprimer une page sur word - Guide
- Espace insécable word - Guide
- Calcul moyenne excel - Guide
- Organigramme word - Guide
3 réponses
brucine
Messages postés
18317
Date d'inscription
lundi 22 février 2021
Statut
Membre
Dernière intervention
20 décembre 2024
2 712
1 août 2021 à 09:35
1 août 2021 à 09:35
Bonjour,
La chose est rapportée, selon les sources, comme n'étant pas fiable, très difficile voire impossible.
Un auteur prétend cependant avoir trouvé une formule:
A peu près tout le monde s'accorde à dire qu'il n'y a pas de solution saine hors macro, voir par exemple ici, datecalc.zip, tandis que d'autres préconisent des utilitaires tiers:
http://www.gmayor.com/downloads.htm
La chose est rapportée, selon les sources, comme n'étant pas fiable, très difficile voire impossible.
Un auteur prétend cependant avoir trouvé une formule:
{={MERGEFIELD "MADATE"\@d}} / {={MERGEFIELD "MADATE"\@MM}}/ {=10+{MERGEFIELD "MADATE"\@yyyy}}
A peu près tout le monde s'accorde à dire qu'il n'y a pas de solution saine hors macro, voir par exemple ici, datecalc.zip, tandis que d'autres préconisent des utilitaires tiers:
http://www.gmayor.com/downloads.htm
julolamayo
Messages postés
5
Date d'inscription
dimanche 1 août 2021
Statut
Membre
Dernière intervention
3 août 2021
2 août 2021 à 21:50
2 août 2021 à 21:50
Bonjour et merci pour vos réponses,
Il s'agit d'un logiciel dans lequel on charge un modèle au format Word, et qui permet de compléter des documents administratifs automatiquement à partir de données entrées dans ce logiciel. On peut ensuite lancer l'impression, et la fusion ne s'effectue pas sur le poste, mais dans le logiciel. La donnée de sortie est donc un fichier pdf imprimable directement. Ce que je veux dire par là, c'est qu'il n'est pas possible d'effectuer quelque réglage que ce soit sur word, la fusion étant certainement réalisée sur un ordinateur distant par l'intermédiaire du logiciel. Les seules modifications que je puisse apporter sont dans le fichier word, uniquement.
Tous les champs fonctionnent parfaitement, par exemple dans le fichier word si je tape :
j'obtiens bien :
Si je tape :
j'obtiens bien :
Mais si je tape :
j'obtiens :
Je viens de passer pas mal de temps à tester les formules proposées dans les différents liens que vous m'avez envoyés, mais rien ne fonctionne...
Il s'agit d'un logiciel dans lequel on charge un modèle au format Word, et qui permet de compléter des documents administratifs automatiquement à partir de données entrées dans ce logiciel. On peut ensuite lancer l'impression, et la fusion ne s'effectue pas sur le poste, mais dans le logiciel. La donnée de sortie est donc un fichier pdf imprimable directement. Ce que je veux dire par là, c'est qu'il n'est pas possible d'effectuer quelque réglage que ce soit sur word, la fusion étant certainement réalisée sur un ordinateur distant par l'intermédiaire du logiciel. Les seules modifications que je puisse apporter sont dans le fichier word, uniquement.
Tous les champs fonctionnent parfaitement, par exemple dans le fichier word si je tape :
{ MERGEFIELD CER2_DATEH \@ "yyyy" \# 0000 },
j'obtiens bien :
2021
Si je tape :
{ = 1 + 1 },
j'obtiens bien :
2
Mais si je tape :
{ = 1 + { MERGEFIELD CER2_DATEH \@ "yyyy" \# 0000 } },
j'obtiens :
= 1 + 2021, alors que je voudrais obtenir :
2022
Je viens de passer pas mal de temps à tester les formules proposées dans les différents liens que vous m'avez envoyés, mais rien ne fonctionne...
brucine
Messages postés
18317
Date d'inscription
lundi 22 février 2021
Statut
Membre
Dernière intervention
20 décembre 2024
2 712
3 août 2021 à 00:45
3 août 2021 à 00:45
Tu l'as dit déjà.
Soit le calcul ne se fait pas, soit il est au mauvais format du fait de la fusion.
Si tu fais: { = 365 +
ça retourne quoi?
Si tu as 2022, c'est que ta fusion s'est faite au format jour, si tu as un résultat fantaisiste, c'est que le calcul fonctionne avec un mauvais format, si tu n'as rien, c'est que la fusion à partir de ton format de données non modifiable ne fournit pas un format de date ou numérique mais autre.
A cet égard, la syntaxe # 0000 s'adresse à un format numérique décimal, pas à un format de date, et il y a donc une antinomie à écrire à la fois "yyyy" et # 0000: on peut pour le test oublier ce commutateur (laisser la date en l'état) et recommencer { = 1 + et { = 365 + pour voir ce que ça raconte.
Si on n'arrive pas à déterminer le format exact de la fusion (si elle n'est ni numérique ni date, on a un problème) ou si elle est l'un ou l'autre mais qu'aucun calcul n'est possible dessus, je reviens à ce que j'ai dit, et où il faudra s'adresser à un autre que moi tant je n'y comprends rien: la solution la plus fiable est dite d'importer son champ de fusion brut de coffrage, puis de lui appliquer une macro VBA (adaptée au format importé...)
Soit le calcul ne se fait pas, soit il est au mauvais format du fait de la fusion.
Si tu fais: { = 365 +
ça retourne quoi?
Si tu as 2022, c'est que ta fusion s'est faite au format jour, si tu as un résultat fantaisiste, c'est que le calcul fonctionne avec un mauvais format, si tu n'as rien, c'est que la fusion à partir de ton format de données non modifiable ne fournit pas un format de date ou numérique mais autre.
A cet égard, la syntaxe # 0000 s'adresse à un format numérique décimal, pas à un format de date, et il y a donc une antinomie à écrire à la fois "yyyy" et # 0000: on peut pour le test oublier ce commutateur (laisser la date en l'état) et recommencer { = 1 + et { = 365 + pour voir ce que ça raconte.
Si on n'arrive pas à déterminer le format exact de la fusion (si elle n'est ni numérique ni date, on a un problème) ou si elle est l'un ou l'autre mais qu'aucun calcul n'est possible dessus, je reviens à ce que j'ai dit, et où il faudra s'adresser à un autre que moi tant je n'y comprends rien: la solution la plus fiable est dite d'importer son champ de fusion brut de coffrage, puis de lui appliquer une macro VBA (adaptée au format importé...)
julolamayo
Messages postés
5
Date d'inscription
dimanche 1 août 2021
Statut
Membre
Dernière intervention
3 août 2021
3 août 2021 à 07:01
3 août 2021 à 07:01
Bonjour et merci encore pour votre aide et votre suivi.
J'ai testé :
Résultat :
Résultat :
J'ai testé :
{ = 1 + {MERGEFIELD "CER2_DateH" \@ "yyyy" } }
Résultat :
= 1 + 2021
{ = 365 + {MERGEFIELD "CER2_DateH" \@ "yyyy" } }
Résultat :
= 365 + 2021
brucine
Messages postés
18317
Date d'inscription
lundi 22 février 2021
Statut
Membre
Dernière intervention
20 décembre 2024
2 712
3 août 2021 à 09:25
3 août 2021 à 09:25
Bonjour,
Je suppose bien sûr que les champs ont été introduits correctement; on peut faire le même test avec une valeur non pas de date mais numérique, mais je crains que l'on arrive au même résultat.
Moralité, le champ importé n'est pas interprété comme une valeur numérique ou de date (c'est la même chose, ce n'est qu'un numéro de série).
Je ne sais pas quel est le logiciel de gestion utilisé; ici, on voit que l'export à partir d'une feuille externe (Sage, je ne sais pas si c'est propre au logiciel ou une syntaxe propre à l'export de pdf) utilise une syntaxe particulière (point d'exclamation).
On peut toujours essayer:
https://fairsailcustomersforlife.force.com/sagepeoplecustomercommunity/s/article/HCM-Forms-Using-Formulas-And-Merge-Fields
Edstein (déjà cité) tient cela comme impossible, ce qui signifierait en fait (puisque le champ "2021" est correctement retourné) que seuls des champs particuliers dépendant du logiciel d'origine pourraient être exportés, et sans qu'il soit possible de leur appliquer des "opérations mathématiques".
Si la sortie se fait au format texte, il est peut-être possible d'écrire une macro modifiant ce texte, mais ce sera bâtard, puisque l'on pourra par exemple remplacer 202(1) par 202(2), mais pas calculer.
Enfin, on pourrait exporter pdf vers doc, mais on ne peut pas à ma connaissance le faire offline avec des logiciels gratuits, devant se retourner vers des logiciels payants et coûteux comme Adobe Acrobat, et n'étant pas sûr de ne pas perdre au passage les champs du fichier d'origine.
Je suppose bien sûr que les champs ont été introduits correctement; on peut faire le même test avec une valeur non pas de date mais numérique, mais je crains que l'on arrive au même résultat.
Moralité, le champ importé n'est pas interprété comme une valeur numérique ou de date (c'est la même chose, ce n'est qu'un numéro de série).
Je ne sais pas quel est le logiciel de gestion utilisé; ici, on voit que l'export à partir d'une feuille externe (Sage, je ne sais pas si c'est propre au logiciel ou une syntaxe propre à l'export de pdf) utilise une syntaxe particulière (point d'exclamation).
On peut toujours essayer:
https://fairsailcustomersforlife.force.com/sagepeoplecustomercommunity/s/article/HCM-Forms-Using-Formulas-And-Merge-Fields
Edstein (déjà cité) tient cela comme impossible, ce qui signifierait en fait (puisque le champ "2021" est correctement retourné) que seuls des champs particuliers dépendant du logiciel d'origine pourraient être exportés, et sans qu'il soit possible de leur appliquer des "opérations mathématiques".
Si la sortie se fait au format texte, il est peut-être possible d'écrire une macro modifiant ce texte, mais ce sera bâtard, puisque l'on pourra par exemple remplacer 202(1) par 202(2), mais pas calculer.
Enfin, on pourrait exporter pdf vers doc, mais on ne peut pas à ma connaissance le faire offline avec des logiciels gratuits, devant se retourner vers des logiciels payants et coûteux comme Adobe Acrobat, et n'étant pas sûr de ne pas perdre au passage les champs du fichier d'origine.
2 août 2021 à 07:19
J'avais déjà consulter le document proposé , mais il n'indique pas de proposition de solution au problème que je rencontre.
En fait la formule ne donne pas d'erreur, mais donne le résultat :
Jul
2 août 2021 à 13:51
Je ne suis pas sûr de comprendre la problématique de base: tu nous dis que la base de données est exportée vers Word ou dans un fichier pdf?
Dans la première hypothèse, on peut modifier les champs sur une copie et c'est ce qu'il y a de plus simple, dans la deuxième, l'export vers un fichier Excel ou Access n'est-il pas possible, là, on n'aurait plus de problème?
Les opérations dans un champ de fusion peuvent se révéler très compliquées pour un grand nombre de raisons: format américain par défaut, format texte, protocole de données..., voir par exemple ici:
https://faqword.com/index.php/word/19-publipostage/412-publipostage-decimales-dates-format-americain
Quand bien même le format serait une date que l'on risque que +1 additionne...un jour et ce qui ne changera rien à tes misères.
Sur les champs, et s'il y a moyen de faire un export modifiable, la solution est documentée:
http://download.faqword.com/index.php/word-exemples/divers/file/81-champ-calcul-date-pour-publipostage
https://www.faqword.com/index.php/word/140-outils-d-edition/681-comment-ajouter-ou-supprimer-un-an-a-la-date-du-jour.
Le fichier DateCalc.zip (mon lien précédent) et que j'ai téléchargé a, en tout cas chez moi, un comportement curieux, peut-être du au fait qu'il est réalisé avec une version de Word très ancienne: on a beau activer le mode de compatibilité et les macros qu'elles restent illisibles.
C'est de toute façon une méthode hasardeuse et compliquée, si elle ne fonctionne pas, il n'y a plus qu'à se retourner vers le VBA (et je n'y comprends rien).
Marina (et qui est elle-même MVP Office et qui donc a priori sait de quoi elle parle) n'a fait en la matière que s'inspirer du pape en la matière (Paul Edstein, alias Macropod, qui l'est aussi et de son complice Graham Mayor), le hic étant que son site historique est inaccessible, il faut essayer de voir ce qui en a été rapporté par d'autres.