Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

extraires une sous-chaine entre deux caractères

38 réponses
Avatar
Jose SISA
Bonjour,
je cherche =E0 extraire
une "sous-chaine" entre le 3i=E8me "/" et le 4i=E8me .

Trouve me dit =E0 quel endroit se trouve le "/"
mais, j'en ai plusieurs , comment lui dire
que je ne veux que entre le 3i=E8me "/" et le 4i=E8me "/".

Merci pour votre
Aide
Jos=E9

10 réponses

1 2 3 4
Avatar
Gloops
Jose SISA a écrit, le 05/04/2012 11:52 :
Bonjour,
je cherche à extraire
une "sous-chaine" entre le 3ième "/" et le 4ième .

Trouve me dit à quel endroit se trouve le "/"
mais, j'en ai plusieurs , comment lui dire
que je ne veux que entre le 3ième "/" et le 4ième "/".

Merci pour votre
Aide
José



Bonjour,


Spl = Split(string, "/")

For N = 0 to UBound(Spl)
Debug.Print N, Spl(N)
Next

Et conclue ensuite en fonction de ce que tu vois dans la fenêtre
d'exécution.

J'ai une hésitation sur la déclaration de Spl, et là on m'appelle. Je
crois que c'est Dim Spl() As String, mais je ne suis plus très sûr,
alors je l'ai testé en Variant.
Avatar
MichD
Bonjour,

Dans un module standard du fichier où se déroule l'action, copie
la fonction personnalisée suivante :

'------------------------------------------------------------------------
Function LeSplit(Expression As String, _
Séparateur As String, _
Élément As Integer)
LeSplit = Split(Expression, Séparateur)(Élément - 1)
End Function
'------------------------------------------------------------------------

Dans ta cellule, pour extraire l'élément de la chaîne désirée en supposant
qu'elle se retrouve en A1, tu inscris la formule suivante :

=Lesplit(A1;"/";3)

A1 : où se retrouve la chaîne de caractères
"/" : le séparateur d'éléments "/" mais tu pourrais utiliser la fonction avec d'autres séparateurs le cas échéant.
3 : c'est le numéro de la section que tu veux obtenir dans ta chaîne de caractères.


MichD
------------------------------------------
Avatar
bcar
En supposant que ton texte soit en A1 et que tu aimes les formules a
rallonge :

=SIERREUR(GAUCHE(DROITE(A1;NBCAR(A1)-TROUVE("/";A1;TROUVE("/";A1;TROUVE("/";A1;1)+1)+1));TROUVE("/";DROITE(A1;NBCAR(A1)-TROUVE("/";A1;TROUVE("/";A1;TROUVE("/";A1;1)+1)+1)))-1);"PAS
ASSEZ DE ""/""")

Heureusement que tu n'avais pas demandé entre le 17ème et le 31ème...
Si tu as la possibilité de faire du vba, écris toi une fonction split ce
sera plus simple

Le 05/04/2012 11:52, Jose SISA a écrit :
Bonjour,
je cherche à extraire
une "sous-chaine" entre le 3ième "/" et le 4ième .

Trouve me dit à quel endroit se trouve le "/"
mais, j'en ai plusieurs , comment lui dire
que je ne veux que entre le 3ième "/" et le 4ième "/".

Merci pour votre
Aide
José
Avatar
Jose SISA
Bonjour,
merci pour vos réponses.

je dois avoir la tete dans le "biiip" ...

ma chaine est par exemple :

aaa//aaaaaaa/bbbbb/cccccc/dddddd/

j'aimerai bbbbb , j'aimerai
utiliser les fonctions STXT ou GAUCHE ou DROITE
mais je n'arrive pas à les "emboiter" correctement.

Merci
José



On 5 avr, 13:46, "MichD" wrote:
Bonjour,

Dans un module standard du fichier où se déroule l'action, copie
la fonction personnalisée suivante :

'------------------------------------------------------------------------
Function LeSplit(Expression As String, _
                Séparateur As String, _
                Élément As Integer)
LeSplit = Split(Expression, Séparateur)(Élément - 1)
End Function
'------------------------------------------------------------------------

Dans ta cellule, pour extraire l'élément de la chaîne désirée e n supposant
qu'elle se retrouve en A1, tu inscris la formule suivante :

=Lesplit(A1;"/";3)

A1 : où se retrouve la chaîne de caractères
"/" : le séparateur d'éléments "/"  mais tu pourrais utiliser la fonction avec d'autres séparateurs le cas échéant.
3   : c'est le numéro de la section que tu veux obtenir dans ta cha îne de caractères.

MichD
------------------------------------------
Avatar
isabelle
bonjour José,

si tu as installé MoreFunc tu peut utiliser la fonction STEXTE

=STEXTE(A1;3;1;"/")


--
isabelle



Le 2012-04-05 08:39, Jose SISA a écrit :
Bonjour,
merci pour vos réponses.

je dois avoir la tete dans le "biiip" ...

ma chaine est par exemple :

aaa//aaaaaaa/bbbbb/cccccc/dddddd/

j'aimerai bbbbb , j'aimerai
utiliser les fonctions STXT ou GAUCHE ou DROITE
mais je n'arrive pas à les "emboiter" correctement.

Merci
José
Avatar
isabelle
ps,

il y a aussi la possibilité d'utiliser la commande Convertir

--
isabelle



Le 2012-04-05 09:11, isabelle a écrit :
bonjour José,

si tu as installé MoreFunc tu peut utiliser la fonction STEXTE

=STEXTE(A1;3;1;"/")


Avatar
MichD
Si tu aimes c'est longue formule!


Si ta chaîne de caractères est en A1
=STXT(A1;TROUVE("/";A1;TROUVE("/";A1;1)+1)+1;TROUVE("/";A1;TROUVE("/";A1;1)+2)-TROUVE("/";A1;TROUVE("/";A1;1)+1)-1)

La formule retourne cette section de la chaîne : "aaaaaaa"

MichD
------------------------------------------
Avatar
Jacquouille
Bonsoir
A condition que ta chaine aie chaque fois la même configuration....et
qu'elle soit en A1
=STXT(A1;TROUVE("b";A1);5)

Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"Jose SISA" a écrit dans le message de groupe de discussion :


Bonjour,
merci pour vos réponses.

je dois avoir la tete dans le "biiip" ...

ma chaine est par exemple :

aaa//aaaaaaa/bbbbb/cccccc/dddddd/

j'aimerai bbbbb , j'aimerai
utiliser les fonctions STXT ou GAUCHE ou DROITE
mais je n'arrive pas à les "emboiter" correctement.

Merci
José



On 5 avr, 13:46, "MichD" wrote:
Bonjour,

Dans un module standard du fichier où se déroule l'action, copie
la fonction personnalisée suivante :

'------------------------------------------------------------------------
Function LeSplit(Expression As String, _
Séparateur As String, _
Élément As Integer)
LeSplit = Split(Expression, Séparateur)(Élément - 1)
End Function
'------------------------------------------------------------------------

Dans ta cellule, pour extraire l'élément de la chaîne désirée en supposant
qu'elle se retrouve en A1, tu inscris la formule suivante :

=Lesplit(A1;"/";3)

A1 : où se retrouve la chaîne de caractères
"/" : le séparateur d'éléments "/" mais tu pourrais utiliser la fonction
avec d'autres séparateurs le cas échéant.
3 : c'est le numéro de la section que tu veux obtenir dans ta chaîne de
caractères.

MichD
------------------------------------------
Avatar
Jose SISA
Bonjour et merci pour vos suggestions et exemples.

j'ai bien peur que cela ne soit pas suffisant, car
le 2ème et le 3ème "/" ne sont pas formément au meme endroit
ni séparé par un même nombre de caractères.

il faudrait arriver à trouver la position A du 1ier "/" puis la
position B du 2ème "/"

oui extraire la chaine entre A et le nb de caractères B-A ...
le tout en évitant les macro, notre systeme est un tit peu
"vérouillé" ...
j'en reste baba ...

Merci pour votre aide.
José




On 5 avr, 20:42, "Jacquouille" wrote:
Bonsoir
A condition que ta chaine aie chaque fois la même configuration....et
qu'elle soit en A1
=STXT(A1;TROUVE("b";A1);5)

Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"Jose SISA"  a écrit dans le message de groupe de discussion :


Bonjour,
merci pour vos réponses.

je dois avoir la tete dans le "biiip" ...

ma chaine est par exemple :

aaa//aaaaaaa/bbbbb/cccccc/dddddd/

j'aimerai bbbbb  , j'aimerai
utiliser les fonctions STXT ou GAUCHE ou DROITE
mais je n'arrive pas à les "emboiter" correctement.

Merci
José

On 5 avr, 13:46, "MichD" wrote:







> Bonjour,

> Dans un module standard du fichier où se déroule l'action, copie
> la fonction personnalisée suivante :

> '---------------------------------------------------------------------- --
> Function LeSplit(Expression As String, _
>                 Séparateur As String, _
>                 Élément As Integer)
> LeSplit = Split(Expression, Séparateur)(Élément - 1)
> End Function
> '---------------------------------------------------------------------- --

> Dans ta cellule, pour extraire l'élément de la chaîne désirée en supposant
> qu'elle se retrouve en A1, tu inscris la formule suivante :

> =Lesplit(A1;"/";3)

> A1 : où se retrouve la chaîne de caractères
> "/" : le séparateur d'éléments "/"  mais tu pourrais utiliser l a fonction
> avec d'autres séparateurs le cas échéant.
> 3   : c'est le numéro de la section que tu veux obtenir dans ta cha îne de
> caractères.

> MichD
> ------------------------------------------
Avatar
Gloops
Jose SISA a écrit, le 06/04/2012 10:19 :
Bonjour et merci pour vos suggestions et exemples.

j'ai bien peur que cela ne soit pas suffisant, car
le 2ème et le 3ème "/" ne sont pas formément au meme endroit
ni séparé par un même nombre de caractères.

il faudrait arriver à trouver la position A du 1ier "/" puis la
position B du 2ème "/"

oui extraire la chaine entre A et le nb de caractères B-A ...
le tout en évitant les macro, notre systeme est un tit peu
"vérouillé" ...
j'en reste baba ...



Mais après tout, si il existe une fonction exprès pour, c'est peut-ê tre
pour quelque chose ?
1 2 3 4