Pour Stéphane :
Côté Spip, c'est juste que dans la ligne d'entête des tableaux Spip
(|{{blabla}}|), le retour à la ligne (MAJ+entrée dans Spip) n'est pas
interprété (il l'est pour le corps du tableau).
Donc "\n" ne suffit pas, il faudrait "\n"+"_ " pour que le retour
charriot soit interprété.
Et le "\p" ne me va pas : il faudrait que je change les CSS pour
l'interlignage...
Pour Jean-François :
J'étais justement en train d'explorer la piste de chr(10).
Cela fonctionne, mais la macro doit être mal écrite.
Cela conserve bien le retour charriot, mais cela m'ajoute une floppée de
"_ " correspondant apparemment au nombre de fois où le remplacement a
été effectué dans ma sélection de cellules :
Début du tableau :
|{{Cellule1 (retour charriot)
_ _ _ _ _ _ _ suite cellule 1 (retour charriot)
_ _ _ _ _ _ _ suite cellule 1 (retour charriot)
_ _ _ _ _ _ _ fin cellule 1}}|{{Cellule2 (retour charriot)
_ _ _ _ _ _ fin cellule2}}|
|Cellule3 (sans retour charriot)|Cellule4 (retour charriot)
_ _ _ _ _ suite cellule4 (retour charriot)
_ _ _ _ _ suite cellule4 (retour charriot)
_ _ _ _ _ fin cellule4|
etc...
Merci de vos éclairages !
@+
Luc
Le 25/01/2024 à 21:54, Jean-Francois Nifenecker a écrit :
Bonsoir Luc,
Le 25/01/2024 à 21:33, Mamin Luc a écrit :
En résumé : après sélection de cellules Calc, la macro fabrique un
fichier Writer dans lequel je peux piocher ce qui m'intéresse pour
faire un tableau Spip.
Cela fonctionne, mais j'ai un besoin que je n'arrive pas à résoudre :
transformer un tout petit peu le "retour charriot" de Calc (CTRL +
Entrée).
Il s'agit en fait d'un saut de ligne (LF "line feed", code Ascii
décimal 10).
Dans la macro, je fais rechercher "\n" et je mets en remplacement
"n\"&"_ ".
J'ai en effet besoin que le retour charriot soit suivi d'un "tiret
bas + espace".
La recherche s'effectue correctement, mais le remplacement transforme
le retour charriot en saut de paragraphe : un peu comme si le
remplacement se faisait en "\p"&"_ ".
C'est "normal"... C'est une caractéristique du Rechercher/Remplacer de
LibreOffice. Voir ici
https://help.libreoffice.org/7.5/en-US/text/shared/01/02100001.html?&DbPAR=WRITER&System=UNIX
où on peut lire pour \n
8< ----------------------------------------
When entered in the Find text box, finds a line break that was
inserted with the Shift+Enter key combination in Writer, or the
Ctrl+Enter key combination in a Calc cell.
When entered in the Replace text box in Writer, inserts a paragraph
break that can be inserted with the Enter or Return key. Has no
special meaning in Calc, and is treated literally there.
-------------------------------------- >8
Telle qu'elle est, ta macro est la victime du traitement du caractère LF.
Tu pourrais donc modifier ta macro en conséquence en remplaçant sans
passer par les expressions régulières :
Ancien = Chr(10)
Nouveau = Ancien & "_ "
Et là ça ne me convient pas du tout...
Extrait :
'RemplacerChaine
Dim oDoc As Object
Dim Remplace As Object
Dim Ancien As String , Nouveau As String
Ancien = "\n"
Nouveau = "\n"&"_ "
oDoc = ThisComponent
Remplace = oDoc.createReplaceDescriptor
Remplace.SearchRegularExpression = True
Remplace.SearchString = Ancien
Remplace.ReplaceString = Nouveau
oDoc.replaceAll(Remplace)
N'étant pas spécialiste du tout des macros basic ou autre, je ne sais
pas comment faire.
Bonne soirée,
--
Envoyez un mail à users+unsubscribe@fr.libreoffice.org pour vous désinscrire
Les archives de la liste sont disponibles à https://listarchives.libreoffice.org/fr/users/
Privacy Policy: https://www.documentfoundation.org/privacy
Context
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.