Date: prev next · Thread: first prev next last
2022 Archives by date, by thread · List index




Re

Donc un numéro de suivi (de la poste, AR ou pas) comporte entre 11 et 15 caractères (pas toujours 13). On ne peut pas trop savoir à l'avance le nombre de caractères que l'on aura... alors il faut une formule qui intègre cette incertitude... Mais toujours pas besoin de macro (de toute façon j'imagine qu'une macro utiliserait une regex...)

Dans les 2 options présentées précédemment (Regex et combinaison de gauche, droite et stxt), j'exclue l'utilisation de droite qui devient une source d'erreur si l'on a un nombre de caractères à traiter qui est fluctuant. Gauche irait, mais dans l'option sans regex, ça me parait plus lisible de ne faire que du stxt.

J'ai tout mis dans ce fichier. https://drop.chapril.org/download/2b4b3e7ffb1e5ef1/#zKFfysVOnAq38A42EcJEew

La formule pour regex évolue, car suite à la remarque de Yves, il faut faire évoluer l'expression régulière pour intégrer que le motif est un peu plus complexe que 23341, puisque le nombre de caractères n'est pas fixe.

La fonction REGEX dans ce cas devient :
REGEX(B9;"(.{2})(.{3})(.{3})(.{3,4})(.*)";"$1 $2 $3 $4 $5") // si la saisie est en B9

=> le 2e et 3e argument sont tout autant utilisables dans un rechercher / remplacer. Les infos pour faire cette modif sont dans la doc sur les expressions régulières (dispo directement dans l'aide en ligne, sans aller plus loin, je n'ajoute pas de lien)

La formule qui enchaîne stxt et concaténation devient, elle :
STXT(B5;1;2) & " " & STXT(B5;3;3) & " " & STXT(B5;6;3) & " " & STXT(B5;9;4) & " " &STXT(B5;12;NBCBR(B5)-11) // si la saisie est en B5

J'ai toujours une préférence pour la REGEX, mais je comprends qu'on se limite à STXT (et Gauche) si on ne pense pas à l'expression régulière. c'est juste dommage, car une fois qu'on sait lire les 2, la regex me parait plus lisible....

Voilou, le fichier ne sera pas dispo trés longtemps, c'est pour ça que j'ai ajouté une partie des explications dans le message... j'arrêtes de jouer !

Bonne journée

Claire

Le 2022-10-27 07:54, Ocleyr2lalune a écrit :

Salut Yves

oui tu as raison, j'étais étonnée aussi... tu parlais de la fonction, donc j'ai revérifié.... la fonction, désolée !

on parle du même fichier envoyé par Yannick/LC_Libre https://drop.chapril.org/download/1eb42ed20171b804/#CBubZVhxKEQSJbe2U9BGGg (qui s'appelle testregex.ods). Pas de différence due au système ce qui semblait très bizarre ! pfiou !

Et évidemment pas besoin d'avoir le bon nombre de caractères pour que la formule avec stxt et gauche, droite fonctionne... ce qui devient donc source d'erreur...

Conclusion, au départ on est parti d'un besoin de formater une série de 13 caractères "de type AR"... avec un schéma (enfin un motif) 23341. S'il n'y a pas toujours 13 caractères, ça se gère je pense mais il faut le préciser ;-)

Bonne journée !

Claire

Le 2022-10-27 00:46, yves dutrieux a écrit :

La cellule A1 n'a que 12 caractères dans le fichier test,
donc si on ajoute 1 caractère dans cette cellule, l'expression régulière fonctionnera effectivement avec les 5 paramètres ;)
ou alors toi et moi, on parle pas du même fichier :-/

Yves

Le mer. 26 oct. 2022 à 21:40, Ocleyr2lalune <ocleyr2lalune@zaclys.net> a écrit :

Et c'est bien celle là qui est utilisée dans les 2 fichiers... Leur différence reste le système avec lequel ils ont été créés.

_Claire_
Le 26 oct. 2022, à 21:36, Ocleyr2lalune <ocleyr2lalune@zaclys.net> a écrit:

Yes.. il doit bien y avoir 5 parties(23341 pas 2334) dans les 2 arguments de la fonction) J'ai donné la fonction ce matin, c'est donc bien toujours celle-la qui doit être utilisée...

=REGEX(A1;"(.{2})(.{3})(.{3})(.{4})(.)";"$1 $2 $3 $4 $5")

⁣Claire​

Le 26 oct. 2022 à 21:30, à 21:30, yves dutrieux <ydutrieux@gmail.com> a écrit:
Bonjour,
Le fichier test , dans l'expression régulière il y a une coquille :
=REGEX(A1;"(.{2})(.{3})(.{3})(.{4})";"$1 $2 $3 $4")

Il n'y a pas de 5eme argument donc le dernier match (.) ne doit pas
exister.

Yves

Le mer. 26 oct. 2022 à 21:03, Ocleyr2lalune <ocleyr2lalune@zaclys.net>
a
écrit :

ah oui c'est très étrange...

votre fichier ne fonctionne pas non plus sur mon système, alors que
quand je crée le mien, ça marche, et pour vous aussi. C'est donc la
création du fichier qui varie, et effectivement selon le système (je
suis sous Fedora 36).

Il y a des utilisateurs de Mac, s'il(s) rode(nt) dans le coin, ils
auront peut être une idée...

Mais pourquoi donc regex pour fonctionner aurait besoin d'être créé sur
un autre système que Mac.....

pour l'instant, je sèche !

Claire

Le 2022-10-26 19:59, LC_Libre a écrit :

Le 26/10/2022 à 16:48, Ocleyr2lalune a écrit :

ben donc la méthode de Dominique fonctionne ;-) puisqu'il parlait
bien

de passer par un rechercher / remplacer (en cochant l'option
"expressions régulières")

pour que les expressions régulières "passent" dans les formules,
il

faut cocher dans : outils / Options / Calc / Calcul => "autoriser
les

expressions régulières dans les formules"

il ne faut pas avoir peur de "ne pas être assez expert", demandez,
il

y aura toujours quelqu'un pour vous guider. C'est comme ça qu'on
progresse !

bien sur, dans la fonction que j'ai donnée, si votre saisie n'est
pas

en A1, il faut juste corriger la référence de cette cellule.

la formule donnée par ailleurs avec stxt, gauche et droite doit
être

corrigée pour obtenir le même découpage (mais le principe reste
juste). La bonne formule (si votre saisie est en A2) :
=GAUCHE(A2;2) & " " & STXT(A2;3;3) & " " & STXT(A2;6;3) & " " &
STXT(A2;9;4) & " " &DROITE(A2;1)

c'est pour ça que j'ai une préférence, dans ce cas, avec REGEX car
elle est moins source d'erreur, vous n'avez pas à indiquer de
positions, etc... juste le "schema" recherché (2/3/3/4/1)

Pour lever toute ambiguite, je vous ai mis ces formules dans un
fichier.
https://drop.chapril.org/download/d42c68a7f7213066/#XCN0JL9o7j92wIaN6ojqYw

Claire Merci Claire,

sur votre fichier, ça fonctionne effectivement.

Un fichier Calc neuf créé dans mon environnement Mac ne fonctionne
pas.

Étrange.

Version: 7.2.5.2 [1] / LibreOffice Community
Build ID: 499f9727c189e6ef3471021d6132d4c694f357e5
CPU threads: 4; OS: Mac OS X 10.10.5; UI render: default; VCL: osx
Locale: fr-FR (fr.UTF-8); UI: fr-FR
Calc: threaded
Ce fichier exemple fonctionne-t-il dans votre système ?

https://drop.chapril.org/download/1eb42ed20171b804/#CBubZVhxKEQSJbe2U9BGGg

NB : je n'ai aucun souci à utiliser un tableur, mon principal outil
  de

travail pendant un certain nombre d'années. Par contre, les regex
  sont

un domaine que j'ai à peine effleuré encore.
--
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

--
web site : http://www.molenbaix.com

--
web site : http://www.molenbaix.com

Links:
------
[1] http://7.2.5.2
--
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.