XL 2016 Obtenir une partie d'une chaine de caractères

iliess

XLDnaute Occasionnel
Bonjour
Je souhaite obtenir une partie d'une chaine de caractères.
voici les exemples suivants:

32036-2024/00001 0005137 379/223 ACH_OD/OV/2024/00001 =======>379/223
664-2024/00002 0004690 1642/2023 ACH_OD/OV/2024/00002 =======>1642/2023
5130-2024/00014 0005662 18/2023 ACH_OD/OV/2024/00014 =======>18/2023
6653-2024/00025 0006888 83/3501/2023 ACH_OD/ATC/2024/00001 =======>83/3501/2023
50-2024/00165 0004009 1660/2023 ACH_OD/OV/2024/00165 =======>1660/2023

je décompose ma chaine de chaine de caractère en 4 partie
1-code four 32036- =NBCAR(TEXTE(CNUM(GAUCHE(A8;TROUVE("-";A8)-1));"00000")*1) Nombre de caractères=6
2-N° de pièce 2024/00001 0005137 Nombre de caractères fixes=19
3-N° de facture 379/223 objectif souhaité
4-reference ACH_OD/OV/2024/00001 =NBCAR(STXT(A8;CHERCHE("ACH";A8);50)) Nombre de caractères=20

Merci
 

Pièces jointes

  • Demo.xlsx
    9 KB · Affichages: 6
Solution
Re,
Normal, la syntaxe des deux fichiers est différente.
Dans le premier fichier votre séparateur est CAR(160), dans le second c'est l'espace (CAR(32)).
Donc votre premier fichier n'est pas représentatif. Impossible à deviner. :)

Essayez avec :
VB:
=STXT((STXT(A2;CHERCHE(" ";A2)+1;(CHERCHE("ACH";A2))-(CHERCHE(" ";A2)+1)));1+CHERCHE(" ";(STXT(A2;CHERCHE(" ";A2)+1;(CHERCHE("ACH";A2))-(CHERCHE(" ";A2)+1))));100)

Gégé-45550

XLDnaute Accro
Bonjour
Je souhaite obtenir une partie d'une chaine de caractères.
voici les exemples suivants:

32036-2024/00001 0005137 379/223 ACH_OD/OV/2024/00001 =======>379/223
664-2024/00002 0004690 1642/2023 ACH_OD/OV/2024/00002 =======>1642/2023
5130-2024/00014 0005662 18/2023 ACH_OD/OV/2024/00014 =======>18/2023
6653-2024/00025 0006888 83/3501/2023 ACH_OD/ATC/2024/00001 =======>83/3501/2023
50-2024/00165 0004009 1660/2023 ACH_OD/OV/2024/00165 =======>1660/2023

je décompose ma chaine de chaine de caractère en 4 partie
1-code four 32036- =NBCAR(TEXTE(CNUM(GAUCHE(A8;TROUVE("-";A8)-1));"00000")*1) Nombre de caractères=6
2-N° de pièce 2024/00001 0005137 Nombre de caractères fixes=19
3-N° de facture 379/223 objectif souhaité
4-reference ACH_OD/OV/2024/00001 =NBCAR(STXT(A8;CHERCHE("ACH";A8);50)) Nombre de caractères=20

Merci
Bonjour,
Voir proposition en PJ.
Cordialement,
 

Pièces jointes

  • Demo.xlsx
    12.4 KB · Affichages: 3

jurassic pork

XLDnaute Occasionnel
Hello,
elles sont bizarres tes chaînes de caractères. Il y a des espaces qui sont des non-breaking space UTF8 ( c2 a0) :
DumpHexa.png


Ami calmant, J.P
 

iliess

XLDnaute Occasionnel
Bonjour Iliess,Vgendron,
Peut être avec :
VB:
=STXT(A2;CHERCHE(CAR(160);A2)+1;(CHERCHE("ACH";A2))-(CHERCHE(CAR(160);A2)+1))
En supposant que la syntaxe soit toujours respectée.
Bonjour M.
Merci pour votre réponse. Ça marche très bien sur le fichier démo, mais lorsque j'ai copié la formule sur mon fichier, le résultat obtenu est #VALEUR!
 

Pièces jointes

  • Demo_1.xlsx
    9.7 KB · Affichages: 2

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re,
Normal, la syntaxe des deux fichiers est différente.
Dans le premier fichier votre séparateur est CAR(160), dans le second c'est l'espace (CAR(32)).
Donc votre premier fichier n'est pas représentatif. Impossible à deviner. :)

Essayez avec :
VB:
=STXT((STXT(A2;CHERCHE(" ";A2)+1;(CHERCHE("ACH";A2))-(CHERCHE(" ";A2)+1)));1+CHERCHE(" ";(STXT(A2;CHERCHE(" ";A2)+1;(CHERCHE("ACH";A2))-(CHERCHE(" ";A2)+1))));100)
 

Pièces jointes

  • Demo_1.xlsx
    9.4 KB · Affichages: 1

iliess

XLDnaute Occasionnel
Re,
Normal, la syntaxe des deux fichiers est différente.
Dans le premier fichier votre séparateur est CAR(160), dans le second c'est l'espace (CAR(32)).
Donc votre premier fichier n'est pas représentatif. Impossible à deviner. :)

Essayez avec :
VB:
=STXT((STXT(A2;CHERCHE(" ";A2)+1;(CHERCHE("ACH";A2))-(CHERCHE(" ";A2)+1)));1+CHERCHE(" ";(STXT(A2;CHERCHE(" ";A2)+1;(CHERCHE("ACH";A2))-(CHERCHE(" ";A2)+1))));100)
Totalement raison, M.sylvanu
Oui, ça marche très bien.
Mille merci.
 

Statistiques des forums

Discussions
314 708
Messages
2 112 088
Membres
111 416
dernier inscrit
philipperoy83