Chercher/remplacer du texte par un champ

Fermé
i-Moi - Modifié le 6 août 2022 à 12:29
 i-Moi - 7 août 2022 à 11:21

Bonjour,

J'ai un document LibreOffice (version 7.2.4.1 Mac) dans lequel je dois chercher des chaînes de textes et les remplacer par des champs de variables.

Prenons comme exemple un document destiné à un élève, qui a été écrit pour cet élève, et dont on veut adapter le contenu pour un mailing futur à destination de dizaines d'élèves : un publipostage classique.

Ici, on a donc un document personnalisé, avec dedans "Pierre", "Dupont", "1 rue des Fleurs" et "Alençon", mais on veut remplacer ces valeurs fixes par des champs variables pour le publipostage, et donc remplacer "Pierre" par <Prénom>, "Dupont" par <Nom>, etc…

Aussi simple que cela paraisse dans son principe, je n'ai pas trouvé la solution. Et si j'affiche les noms des champs, et que je colle ce contenu dans le champ "remplacer par", il va mettre dans le document les mots du champ, mais ce ne sera pas un champ variable. Quelqu'un a -t-il trouvé la solution ?

(j'ai essayé l'extension Alt Searche & Replace, sans succès…)

Merci à tous !

i-Moi


Macintosh / Safari 15.5

4 réponses

trotte-menu Messages postés 776 Date d'inscription dimanche 8 novembre 2020 Statut Membre Dernière intervention 18 avril 2024 283
Modifié le 6 août 2022 à 14:04

Bonjour,

Voici un lien (ancien mais la technique reste la même) :
https://www.openoffice.org/fr/Documentation/Writer/OOoPublipostCalc.pdf


Après avoir créé la source de données, une fois sur le document Writer, appeler la source de données et glisser-déposer les têtes de colonnes à l'endroit voulu sur le document.
Bonne lecture.


0

Merci, mais j'ai dû mal m'exprimer. Je ne cherche pas la technique pour faire un publipostage.

J'ai un document dans lequel je dois remplacer par exemple "Pierre" partout par le champ de publipostage <Prénom>. (le mot recherché apparaît 800 fois dans le document, et j'ai 40 champs comme ça à traiter). A terme, je veux obtenir un document qui sera prêt pour être personnalisé à la demande.

Je veux donc utiliser la fonction Chercher/Remplacer. Or, celle-ci ne permet pas —que je sache— de chercher du texte et de le remplacer par un champ…

0
Mr_Tintin Messages postés 29 Date d'inscription dimanche 29 mars 2020 Statut Membre Dernière intervention 4 juin 2023 2
6 août 2022 à 23:32

Bonjour,

Vous êtes sur un document Calc ou Writer ? 

0

Bonjour

Le fichier qui doit devenir le fichier à publiposter est un fichier Writer bien sûr, et la source des données est un fichier Calc. Mais j'ai trouvé la solution !

Elle est ici :

https://ask.libreoffice.org/t/find-and-replace-fields/15633

Pour contourner la limitation du Rechercher/Remplacer de LibreOffice, qui ne permet pas de chercher un texte de le remplacer par un champ, il faut passer par l'édition du code du fichier XML. C'est un peu casse-pieds (pour dire le moins) mais ça marche.

J'ai donc un texte (il s'agit d'un long doc, qui avait été fait pour un seul usage, donc sans variables, et que je veux réutiliser, avec des variables. Il comporte plein de fois des nombreux noms et prénoms, et des adresses, etc).

Prenons l'exemple d'une société à qui un apporteur d'affaires a apporté un client, et on lui a fait un doc récap, du style : Cher M. Pigeonnier, nous sommes très heureux et reconnaissant à M. Ginelli de nous avoir mis en contact avec vous. Plus loin vous verrez notre présentation relative à votre projet à Bordeaux, et vous pourrez toujours contacter M. Ginelli à St-Brieuc.

Et comme ça pendant 40 pages.

Le document est parfait. Il est tellement bien qu'il est décidé que ça va devenir le doc pour tous les clients.

Ceux-ci sont listés dans une base de données sur Calc (cadre un tableau avec une ligne par client et une colonne par info (prénom, Nom, etc).

Je dois donc chercher dans mon long doc writer les tonnes d'occurrences de "André", de "Ginelli", de "St-Brieuc", de "Martin", "Pigeonnier", "Bordeaux" par des champs variables : <Prenom_Apporteur>, <Nom_Apporteur>. Comme dit précédemment, LibreOffice ne permet pas de remplacer du texte par un champ.

La solution de Cyclelochness sur le forum ask.libreoffice.org est d'exporter le fichier .odt au format texte Flat XML (.fodt), de l'ouvrir dans un éditeur de texte (dans mon cas TextEdit sur Mac) et d'y faire le Chercher/Remplacer. Il faut bien sûr chercher dans le fichier fodt à quoi peut ressembler un champ variable (j'en avais inséré un à la main) et copier ce code. Ensuite on cherche partout par exemple "André" et on le remplace par le code. On enregistre, on rouvre dans LibreOffice et ça marche. Partout ce qui était recherché a été remplacé par la variable, qui est bien un champ reconnu comme tel par LibreOffice. Dommage d'en passer par là mais ça marche !

Merci à tous.

0