Re: [fr-users] Writer - Courriel de Publipostage

2024-01-25 Thread Alain Tixier
Désolé, mais le certificat joint n'est pas valide. L'installation est
refusé par MacOs

*Cordialement,Alain Tixier* ;-)
*Je suis aussi joignable sur Signal (https://signal.org/fr/
)*
🌲 *Je c**ontribue au respect de l'environnement en n'imprimant ce mail
qu'en cas de besoin.*
_




Le mer. 24 janv. 2024 à 22:28, yves dutrieux  a écrit :

> Très bizarre,
>
> d'après l'erreur on dirait une erreur de validation de certificat. Or, en
> revenant à la version précédente, cela fonctionne ???
> ça tendrait à dire que le python utilisé dans libreoffice se baserait sur
> un fichier de certificat CA différent de la version précédente..
> Sous windows, je présume que python utilise les certificats du système,
> mais il est possible de le forcer à en utiliser d'autres via par exemple un
> fichier.
> Ex: dans python , pour identifier le chemin qu'il utilise pour valider un
> certificat peut être obtenu via :
>
> C:\Program Files\LibreOffice\program>*python -c "import ssl;
> print(ssl.get_default_verify_paths())"*
> DefaultVerifyPaths(cafile=None, capath=None,
> openssl_cafile_env='SSL_CERT_FILE', openssl_cafile='C:/Program Files/Common
> Files/SSL/cert.pem', openssl_capath_env='SSL_CERT_DIR',
> openssl_capath='C:/Program Files/Common Files/SSL/certs')
>
> C:\Program Files\LibreOffice\program>python --version
> Python 3.8.18
>
> On voit dès lors qu'on pourrait peut-être utiliser le fichier de curl (le
> fichier curl-ca-bundle.crt ) pour , dans mon cas à moi, le renommer sous le
> dossier 'c:\program files\ssl' sous le nom cert.pem
> Je suppose alors que python prendra en compte ce fichier pour authentifier
> le certificat et peut-être ajouter une vérification supplémentaire du
> certificat.
> si cela ne fonctionne pas, alors, à moins que le code python ait changé
> entre les versions, je comprend pas pourquoi ça fonctionne pas entre les
> versions *sur un même système*...
>
> ps: désolé pour la technicité...
> Yves
>
> Le mer. 24 janv. 2024 à 16:00, Alain Tixier  a écrit :
>
>> Bonjour
>> Je viens de constater que le publipostage via email ne marchait plus (le
>> problème semble récurrent d'après les informations trouvées sur Internet).
>> J'utilise LO 7.6.4.1 sur MacOs 14.3 (M2)
>> J'ai installé une version d'archive 7.5.0.2. Sans changer les paramètres
>> de
>> connexion (repris automatiquement) et tout remarche à nouveau.
>> Voici la liste des erreurs :
>> LibreOffice n'a pas pu se connecter au serveur de courriel sortant.
>> Vérifiez vos paramètres système et les paramètres de LibreOffice. Vérifiez
>> le nom du serveur, le port et les paramètres des connexions sécurisées
>> --
>> : [SSL: CERTIFICATE_VERIFY_FAILED]
>> certificate verify failed: unable to get local issuer certificate
>> (_ssl.c:1131), traceback follows
>>   File "/Applications/LibreOffice.app/Contents/Resources/mailmerge.py",
>> line 99, in connect
>> self.server = smtplib.SMTP_SSL(server, port, timeout=tout,
>> context=ssl.create_default_context())
>>   File
>>
>> "/Applications/LibreOffice.app/Contents/Frameworks/LibreOfficePython.framework/Versions/Current/lib/python3.8/smtplib.py",
>> line 1048, in __init__
>> SMTP.__init__(self, host, port, local_hostname, timeout,
>>   File
>>
>> "/Applications/LibreOffice.app/Contents/Frameworks/LibreOfficePython.framework/Versions/Current/lib/python3.8/smtplib.py",
>> line 255, in __init__
>> (code, msg) = self.connect(host, port)
>>   File
>>
>> "/Applications/LibreOffice.app/Contents/Frameworks/LibreOfficePython.framework/Versions/Current/lib/python3.8/smtplib.py",
>> line 339, in connect
>> self.sock = self._get_socket(host, port, self.timeout)
>>   File
>>
>> "/Applications/LibreOffice.app/Contents/Frameworks/LibreOfficePython.framework/Versions/Current/lib/python3.8/smtplib.py",
>> line 1056, in _get_socket
>> new_socket = self.context.wrap_socket(new_socket,
>>   File
>>
>> "/Applications/LibreOffice.app/Contents/Frameworks/LibreOfficePython.framework/Versions/Current/lib/python3.8/ssl.py",
>> line 500, in wrap_socket
>> return self.sslsocket_class._create(
>>   File
>>
>> "/Applications/LibreOffice.app/Contents/Frameworks/LibreOfficePython.framework/Versions/Current/lib/python3.8/ssl.py",
>> line 1073, in _create
>> self.do_handshake()
>>   File
>>
>> "/Applications/LibreOffice.app/Contents/Frameworks/LibreOfficePython.framework/Versions/Current/lib/python3.8/ssl.py",
>> line 1342, in do_handshake
>> self._sslobj.do_handshake()
>>
>> PS : La même erreur existe avec la version 24.2.0.2 !
>>
>> *Merci de votre aide.Cordialement,Alain Tixier* ;-)
>> *Je suis aussi joignable sur Signal (https://signal.org/fr/
>> )*
>> 🌲 *Je c**ontribue au respect de l'environnement en n'imprimant ce mail
>> qu'en cas de besoin.*
>> _
>>
>> --
>> Envoyez un mail à users+unsubscr...@fr.libreoffice.org pour vous
>> désinscrire
>> Les archiv

Re: [fr-users] Writer - Courriel de Publipostage

2024-01-25 Thread Alain Tixier
Le bug est répertorié *157480* :
https://bugs.documentfoundation.org/show_bug.cgi?id=157480
La dernière release correcte semble être la *7.4.7.2* que je viens de
tester avec succès.
Le module en cause serait : mailmerge.py
A suivre...

*Cordialement,Alain Tixier*
*Je suis aussi joignable sur Signal (https://signal.org/fr/
)*
🌲 *Je c**ontribue au respect de l'environnement en n'imprimant ce mail
qu'en cas de besoin.*
_




Le jeu. 25 janv. 2024 à 10:21, Alain Tixier  a écrit :

> Désolé, mais le certificat joint n'est pas valide. L'installation est
> refusé par MacOs
>
> *Cordialement,Alain Tixier* ;-)
> *Je suis aussi joignable sur Signal (https://signal.org/fr/
> )*
> 🌲 *Je c**ontribue au respect de l'environnement en n'imprimant ce mail
> qu'en cas de besoin.*
> _
>
>
>
>
> Le mer. 24 janv. 2024 à 22:28, yves dutrieux  a
> écrit :
>
>> Très bizarre,
>>
>> d'après l'erreur on dirait une erreur de validation de certificat. Or, en
>> revenant à la version précédente, cela fonctionne ???
>> ça tendrait à dire que le python utilisé dans libreoffice se baserait sur
>> un fichier de certificat CA différent de la version précédente..
>> Sous windows, je présume que python utilise les certificats du système,
>> mais il est possible de le forcer à en utiliser d'autres via par exemple un
>> fichier.
>> Ex: dans python , pour identifier le chemin qu'il utilise pour valider un
>> certificat peut être obtenu via :
>>
>> C:\Program Files\LibreOffice\program>*python -c "import ssl;
>> print(ssl.get_default_verify_paths())"*
>> DefaultVerifyPaths(cafile=None, capath=None,
>> openssl_cafile_env='SSL_CERT_FILE', openssl_cafile='C:/Program Files/Common
>> Files/SSL/cert.pem', openssl_capath_env='SSL_CERT_DIR',
>> openssl_capath='C:/Program Files/Common Files/SSL/certs')
>>
>> C:\Program Files\LibreOffice\program>python --version
>> Python 3.8.18
>>
>> On voit dès lors qu'on pourrait peut-être utiliser le fichier de curl (le
>> fichier curl-ca-bundle.crt ) pour , dans mon cas à moi, le renommer sous le
>> dossier 'c:\program files\ssl' sous le nom cert.pem
>> Je suppose alors que python prendra en compte ce fichier pour
>> authentifier le certificat et peut-être ajouter une vérification
>> supplémentaire du certificat.
>> si cela ne fonctionne pas, alors, à moins que le code python ait changé
>> entre les versions, je comprend pas pourquoi ça fonctionne pas entre les
>> versions *sur un même système*...
>>
>> ps: désolé pour la technicité...
>> Yves
>>
>> Le mer. 24 janv. 2024 à 16:00, Alain Tixier  a écrit :
>>
>>> Bonjour
>>> Je viens de constater que le publipostage via email ne marchait plus (le
>>> problème semble récurrent d'après les informations trouvées sur
>>> Internet).
>>> J'utilise LO 7.6.4.1 sur MacOs 14.3 (M2)
>>> J'ai installé une version d'archive 7.5.0.2. Sans changer les paramètres
>>> de
>>> connexion (repris automatiquement) et tout remarche à nouveau.
>>> Voici la liste des erreurs :
>>> LibreOffice n'a pas pu se connecter au serveur de courriel sortant.
>>> Vérifiez vos paramètres système et les paramètres de LibreOffice.
>>> Vérifiez
>>> le nom du serveur, le port et les paramètres des connexions sécurisées
>>> --
>>> : [SSL: CERTIFICATE_VERIFY_FAILED]
>>> certificate verify failed: unable to get local issuer certificate
>>> (_ssl.c:1131), traceback follows
>>>   File "/Applications/LibreOffice.app/Contents/Resources/mailmerge.py",
>>> line 99, in connect
>>> self.server = smtplib.SMTP_SSL(server, port, timeout=tout,
>>> context=ssl.create_default_context())
>>>   File
>>>
>>> "/Applications/LibreOffice.app/Contents/Frameworks/LibreOfficePython.framework/Versions/Current/lib/python3.8/smtplib.py",
>>> line 1048, in __init__
>>> SMTP.__init__(self, host, port, local_hostname, timeout,
>>>   File
>>>
>>> "/Applications/LibreOffice.app/Contents/Frameworks/LibreOfficePython.framework/Versions/Current/lib/python3.8/smtplib.py",
>>> line 255, in __init__
>>> (code, msg) = self.connect(host, port)
>>>   File
>>>
>>> "/Applications/LibreOffice.app/Contents/Frameworks/LibreOfficePython.framework/Versions/Current/lib/python3.8/smtplib.py",
>>> line 339, in connect
>>> self.sock = self._get_socket(host, port, self.timeout)
>>>   File
>>>
>>> "/Applications/LibreOffice.app/Contents/Frameworks/LibreOfficePython.framework/Versions/Current/lib/python3.8/smtplib.py",
>>> line 1056, in _get_socket
>>> new_socket = self.context.wrap_socket(new_socket,
>>>   File
>>>
>>> "/Applications/LibreOffice.app/Contents/Frameworks/LibreOfficePython.framework/Versions/Current/lib/python3.8/ssl.py",
>>> line 500, in wrap_socket
>>> return self.sslsocket_class._create(
>>>   File
>>>
>>> "/Applications/LibreOffice.app/Contents/Frameworks/LibreOfficePython.framework/Versions/Current/lib/python3.8/ssl.py",
>>> line 1073, in _create
>>> self.do_handsh

Re: [fr-users] Writer - Courriel de Publipostage

2024-01-25 Thread Mamin Luc

Bonsoir

Pour ma part, sous Windows 10 :

Avec LO 7.5.9.2 : l'envoi de courriel de publipostage fonctionne.
Avec LO 7.6.4.1 : ça ne fonctionne pas.

@+
Luc

Le 25/01/2024 à 16:44, Alain Tixier a écrit :

Le bug est répertorié *157480* :
https://bugs.documentfoundation.org/show_bug.cgi?id=157480
La dernière release correcte semble être la *7.4.7.2* que je viens de
tester avec succès.
Le module en cause serait : mailmerge.py
A suivre...

*Cordialement,Alain Tixier*
*Je suis aussi joignable sur Signal (https://signal.org/fr/
)*
🌲 *Je c**ontribue au respect de l'environnement en n'imprimant ce mail
qu'en cas de besoin.*
_




Le jeu. 25 janv. 2024 à 10:21, Alain Tixier  a écrit :


Désolé, mais le certificat joint n'est pas valide. L'installation est
refusé par MacOs

*Cordialement,Alain Tixier* ;-)
*Je suis aussi joignable sur Signal (https://signal.org/fr/
)*
🌲 *Je c**ontribue au respect de l'environnement en n'imprimant ce mail
qu'en cas de besoin.*
_




Le mer. 24 janv. 2024 à 22:28, yves dutrieux  a
écrit :


Très bizarre,

d'après l'erreur on dirait une erreur de validation de certificat. Or, en
revenant à la version précédente, cela fonctionne ???
ça tendrait à dire que le python utilisé dans libreoffice se baserait sur
un fichier de certificat CA différent de la version précédente..
Sous windows, je présume que python utilise les certificats du système,
mais il est possible de le forcer à en utiliser d'autres via par exemple un
fichier.
Ex: dans python , pour identifier le chemin qu'il utilise pour valider un
certificat peut être obtenu via :

C:\Program Files\LibreOffice\program>*python -c "import ssl;
print(ssl.get_default_verify_paths())"*
DefaultVerifyPaths(cafile=None, capath=None,
openssl_cafile_env='SSL_CERT_FILE', openssl_cafile='C:/Program Files/Common
Files/SSL/cert.pem', openssl_capath_env='SSL_CERT_DIR',
openssl_capath='C:/Program Files/Common Files/SSL/certs')

C:\Program Files\LibreOffice\program>python --version
Python 3.8.18

On voit dès lors qu'on pourrait peut-être utiliser le fichier de curl (le
fichier curl-ca-bundle.crt ) pour , dans mon cas à moi, le renommer sous le
dossier 'c:\program files\ssl' sous le nom cert.pem
Je suppose alors que python prendra en compte ce fichier pour
authentifier le certificat et peut-être ajouter une vérification
supplémentaire du certificat.
si cela ne fonctionne pas, alors, à moins que le code python ait changé
entre les versions, je comprend pas pourquoi ça fonctionne pas entre les
versions *sur un même système*...

ps: désolé pour la technicité...
Yves

Le mer. 24 janv. 2024 à 16:00, Alain Tixier  a écrit :


Bonjour
Je viens de constater que le publipostage via email ne marchait plus (le
problème semble récurrent d'après les informations trouvées sur
Internet).
J'utilise LO 7.6.4.1 sur MacOs 14.3 (M2)
J'ai installé une version d'archive 7.5.0.2. Sans changer les paramètres
de
connexion (repris automatiquement) et tout remarche à nouveau.
Voici la liste des erreurs :
LibreOffice n'a pas pu se connecter au serveur de courriel sortant.
Vérifiez vos paramètres système et les paramètres de LibreOffice.
Vérifiez
le nom du serveur, le port et les paramètres des connexions sécurisées
--
: [SSL: CERTIFICATE_VERIFY_FAILED]
certificate verify failed: unable to get local issuer certificate
(_ssl.c:1131), traceback follows
   File "/Applications/LibreOffice.app/Contents/Resources/mailmerge.py",
line 99, in connect
 self.server = smtplib.SMTP_SSL(server, port, timeout=tout,
context=ssl.create_default_context())
   File

"/Applications/LibreOffice.app/Contents/Frameworks/LibreOfficePython.framework/Versions/Current/lib/python3.8/smtplib.py",
line 1048, in __init__
 SMTP.__init__(self, host, port, local_hostname, timeout,
   File

"/Applications/LibreOffice.app/Contents/Frameworks/LibreOfficePython.framework/Versions/Current/lib/python3.8/smtplib.py",
line 255, in __init__
 (code, msg) = self.connect(host, port)
   File

"/Applications/LibreOffice.app/Contents/Frameworks/LibreOfficePython.framework/Versions/Current/lib/python3.8/smtplib.py",
line 339, in connect
 self.sock = self._get_socket(host, port, self.timeout)
   File

"/Applications/LibreOffice.app/Contents/Frameworks/LibreOfficePython.framework/Versions/Current/lib/python3.8/smtplib.py",
line 1056, in _get_socket
 new_socket = self.context.wrap_socket(new_socket,
   File

"/Applications/LibreOffice.app/Contents/Frameworks/LibreOfficePython.framework/Versions/Current/lib/python3.8/ssl.py",
line 500, in wrap_socket
 return self.sslsocket_class._create(
   File

"/Applications/LibreOffice.app/Contents/Frameworks/LibreOfficePython.framework/Versions/Current/lib/python3.8/ssl.py",
line 1073, in _create
 self.do_handshake()
   File

"/Applications/LibreOffice.app/Contents/Frameworks/LibreOfficePython.framework/Versions/Cur

Re: [fr-users] Writer - Courriel de Publipostage

2024-01-25 Thread Alain Tixier
Pour moi sur Macos 14.3 :
LO 7.4.7.2 - Ça marche
LO 7.5.9.2 et au delà - Bug SSL !

*Cordialement,Alain Tixier*
*Je suis aussi joignable sur Signal (https://signal.org/fr/
)*
🌲 *Je c**ontribue au respect de l'environnement en n'imprimant ce mail
qu'en cas de besoin.*
_




Le jeu. 25 janv. 2024 à 18:05, Mamin Luc  a écrit :

> Bonsoir
>
> Pour ma part, sous Windows 10 :
>
> Avec LO 7.5.9.2 : l'envoi de courriel de publipostage fonctionne.
> Avec LO 7.6.4.1 : ça ne fonctionne pas.
>
> @+
> Luc
>
> Le 25/01/2024 à 16:44, Alain Tixier a écrit :
> > Le bug est répertorié *157480* :
> > https://bugs.documentfoundation.org/show_bug.cgi?id=157480
> > La dernière release correcte semble être la *7.4.7.2* que je viens de
> > tester avec succès.
> > Le module en cause serait : mailmerge.py
> > A suivre...
> >
> > *Cordialement,Alain Tixier*
> > *Je suis aussi joignable sur Signal (https://signal.org/fr/
> > )*
> > 🌲 *Je c**ontribue au respect de l'environnement en n'imprimant ce mail
> > qu'en cas de besoin.*
> > _
> >
> >
> >
> >
> > Le jeu. 25 janv. 2024 à 10:21, Alain Tixier  a écrit
> :
> >
> >> Désolé, mais le certificat joint n'est pas valide. L'installation est
> >> refusé par MacOs
> >>
> >> *Cordialement,Alain Tixier* ;-)
> >> *Je suis aussi joignable sur Signal (https://signal.org/fr/
> >> )*
> >> 🌲 *Je c**ontribue au respect de l'environnement en n'imprimant ce mail
> >> qu'en cas de besoin.*
> >> _
> >>
> >>
> >>
> >>
> >> Le mer. 24 janv. 2024 à 22:28, yves dutrieux  a
> >> écrit :
> >>
> >>> Très bizarre,
> >>>
> >>> d'après l'erreur on dirait une erreur de validation de certificat. Or,
> en
> >>> revenant à la version précédente, cela fonctionne ???
> >>> ça tendrait à dire que le python utilisé dans libreoffice se baserait
> sur
> >>> un fichier de certificat CA différent de la version précédente..
> >>> Sous windows, je présume que python utilise les certificats du système,
> >>> mais il est possible de le forcer à en utiliser d'autres via par
> exemple un
> >>> fichier.
> >>> Ex: dans python , pour identifier le chemin qu'il utilise pour valider
> un
> >>> certificat peut être obtenu via :
> >>>
> >>> C:\Program Files\LibreOffice\program>*python -c "import ssl;
> >>> print(ssl.get_default_verify_paths())"*
> >>> DefaultVerifyPaths(cafile=None, capath=None,
> >>> openssl_cafile_env='SSL_CERT_FILE', openssl_cafile='C:/Program
> Files/Common
> >>> Files/SSL/cert.pem', openssl_capath_env='SSL_CERT_DIR',
> >>> openssl_capath='C:/Program Files/Common Files/SSL/certs')
> >>>
> >>> C:\Program Files\LibreOffice\program>python --version
> >>> Python 3.8.18
> >>>
> >>> On voit dès lors qu'on pourrait peut-être utiliser le fichier de curl
> (le
> >>> fichier curl-ca-bundle.crt ) pour , dans mon cas à moi, le renommer
> sous le
> >>> dossier 'c:\program files\ssl' sous le nom cert.pem
> >>> Je suppose alors que python prendra en compte ce fichier pour
> >>> authentifier le certificat et peut-être ajouter une vérification
> >>> supplémentaire du certificat.
> >>> si cela ne fonctionne pas, alors, à moins que le code python ait changé
> >>> entre les versions, je comprend pas pourquoi ça fonctionne pas entre
> les
> >>> versions *sur un même système*...
> >>>
> >>> ps: désolé pour la technicité...
> >>> Yves
> >>>
> >>> Le mer. 24 janv. 2024 à 16:00, Alain Tixier  a
> écrit :
> >>>
>  Bonjour
>  Je viens de constater que le publipostage via email ne marchait plus
> (le
>  problème semble récurrent d'après les informations trouvées sur
>  Internet).
>  J'utilise LO 7.6.4.1 sur MacOs 14.3 (M2)
>  J'ai installé une version d'archive 7.5.0.2. Sans changer les
> paramètres
>  de
>  connexion (repris automatiquement) et tout remarche à nouveau.
>  Voici la liste des erreurs :
>  LibreOffice n'a pas pu se connecter au serveur de courriel sortant.
>  Vérifiez vos paramètres système et les paramètres de LibreOffice.
>  Vérifiez
>  le nom du serveur, le port et les paramètres des connexions sécurisées
>  --
>  : [SSL:
> CERTIFICATE_VERIFY_FAILED]
>  certificate verify failed: unable to get local issuer certificate
>  (_ssl.c:1131), traceback follows
> File
> "/Applications/LibreOffice.app/Contents/Resources/mailmerge.py",
>  line 99, in connect
>   self.server = smtplib.SMTP_SSL(server, port, timeout=tout,
>  context=ssl.create_default_context())
> File
> 
> 
> "/Applications/LibreOffice.app/Contents/Frameworks/LibreOfficePython.framework/Versions/Current/lib/python3.8/smtplib.py",
>  line 1048, in __init__
>   SMTP.__init__(self, host, port, local_hostname, timeout,
> File
> 
> 
> "/Applications/LibreOffice.app/Contents/Frameworks/LibreOfficePython.fram

[fr-users] Macro : remplacer par une expression régulière ?

2024-01-25 Thread Mamin Luc

Bonsoir

Tout d'abord, je précise que je ne suis pas du tout, mais alors pas du 
tout spécialiste des macros : en fait, je n'y connais rien.


Là, je suis en train de modifier une macro basic existante pour 
l'adapter à mes besoins, et j'y arrive... presque.


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).


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"&"_ ".

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.


J'ai l'impression qu'il n'est pas possible de faire un remplacement par 
une expression régulière.
Au quel cas, il me faudrait non pas "remplacer", mais rechercher le 
retour charriot (\n) pour dire à la macro de le faire suivre par "_ ".

Mais là je suis incompétent...

Je prends toutes les idées...

Merci
Luc


--
Envoyez un mail à users+unsubscr...@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


Re: [fr-users] Macro : remplacer par une expression régulière ?

2024-01-25 Thread Stéphane Santon

Bonjour,

D'après
https://help.libreoffice.org/latest/fr/text/shared/01/0211.html

effectivement, \n cherche un saut de ligne et remplace par un saut de 
paragraphe.

Rien pour désigner le remplacement pas un saut de ligne.

Sinon c'est quoi le but global par rapport à Spip ?


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).


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"&"_ ".

Et là ça ne me convient pas du tout...


J'ai l'impression qu'il n'est pas possible de faire un remplacement par 
une expression régulière.
Au quel cas, il me faudrait non pas "remplacer", mais rechercher le 
retour charriot (\n) pour dire à la macro de le faire suivre par "_ ".

Mais là je suis incompétent...

Je prends toutes les idées...



--
Envoyez un mail à users+unsubscr...@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


Re: [fr-users] Macro : remplacer par une expression régulière ?

2024-01-25 Thread Jean-Francois Nifenecker

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/0211.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,
--
Jean-Francois Nifenecker, Bordeaux

--
Envoyez un mail à users+unsubscr...@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


Re: [fr-users] Macro : remplacer par une expression régulière ?

2024-01-25 Thread Mamin Luc

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/0211.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+unsubscr...@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