Bonjour En fait, ma proposition ne se préoccupe pas des "/". Je prends la fonction STXT qui permet d'extraire un certain nombre de caractères, à partir d'un certain chiffre. Un peu comme gauche ou droite mais qui elles, ne commencent à extraire qu'à partir du bord (début ou fin ) de la chaine. Je lui demande donc d'extraire 5 caractères à partir du début de la série des "b". pour cela, je lui demande la position du premier "b" trouvé, via la fonction Médor (allez, cherche...ou trouve).
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 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 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.
Bonjour
En fait, ma proposition ne se préoccupe pas des "/".
Je prends la fonction STXT qui permet d'extraire un certain nombre de
caractères, à partir d'un certain chiffre. Un peu comme gauche ou droite
mais qui elles, ne commencent à extraire qu'à partir du bord (début ou fin )
de la chaine.
Je lui demande donc d'extraire 5 caractères à partir du début de la série
des "b".
pour cela, je lui demande la position du premier "b" trouvé, via la fonction
Médor (allez, cherche...ou trouve).
Jacquouille
" Le vin est au repas ce que le parfum est à la femme."
"Jose SISA" a écrit dans le message de groupe de discussion :
70926527-c4f1-4225-82cb-a8a5eb07e3ea@z17g2000yqf.googlegroups.com...
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" <j.thierne...@skynet.be> 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 :
e79a9764-6526-486a-8cee-49306b298...@a5g2000vbl.googlegroups.com...
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" <michde...@hotmail.com> 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.
Bonjour En fait, ma proposition ne se préoccupe pas des "/". Je prends la fonction STXT qui permet d'extraire un certain nombre de caractères, à partir d'un certain chiffre. Un peu comme gauche ou droite mais qui elles, ne commencent à extraire qu'à partir du bord (début ou fin ) de la chaine. Je lui demande donc d'extraire 5 caractères à partir du début de la série des "b". pour cela, je lui demande la position du premier "b" trouvé, via la fonction Médor (allez, cherche...ou trouve).
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 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 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.
Avec l'inconvénient par rapport à la fonction split que c'est moins l isible. Le deuxième argument dit où commencer, ça ça va. Le troisième, pour donner la longueur, cherche la barre oblique, en démarrant au b [TROUVE("/";A1;TROUVE("b";A1))], puis retire la position du b [TROUVE("b";A1)].
Mais ... ça ressemble furieusement à la deuxième proposition de Mic hD, dont rien n'a été retenu ... Il est vrai que c'est plus facile de prendre la position du b, comme point de repère, du fait qu'il n'y en a qu'un. Si maintenant le b éta it un exemple, et qu'on a des textes variables, là bien sûr, ça ne mar che plus, il faut en revenir au split qui est fait exprès pour.
A moins de constater que le b se trouve deux caractères après la première barre oblique, donc à TROUVE("/";A1) + 2, qu'on mettrait à la place de TROUVE("b";A1).
Jacquouille a écrit, le 05/04/2012 20:42 :
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)
Eh oui : c'est pour ça que ça ne marche pas, parce que le nombre de b
est variable.
Avec l'inconvénient par rapport à la fonction split que c'est moins l isible.
Le deuxième argument dit où commencer, ça ça va.
Le troisième, pour donner la longueur, cherche la barre oblique, en
démarrant au b [TROUVE("/";A1;TROUVE("b";A1))], puis retire la position
du b [TROUVE("b";A1)].
Mais ... ça ressemble furieusement à la deuxième proposition de Mic hD,
dont rien n'a été retenu ...
Il est vrai que c'est plus facile de prendre la position du b, comme
point de repère, du fait qu'il n'y en a qu'un. Si maintenant le b éta it
un exemple, et qu'on a des textes variables, là bien sûr, ça ne mar che
plus, il faut en revenir au split qui est fait exprès pour.
A moins de constater que le b se trouve deux caractères après la
première barre oblique, donc à TROUVE("/";A1) + 2, qu'on mettrait à la
place de TROUVE("b";A1).
Avec l'inconvénient par rapport à la fonction split que c'est moins l isible. Le deuxième argument dit où commencer, ça ça va. Le troisième, pour donner la longueur, cherche la barre oblique, en démarrant au b [TROUVE("/";A1;TROUVE("b";A1))], puis retire la position du b [TROUVE("b";A1)].
Mais ... ça ressemble furieusement à la deuxième proposition de Mic hD, dont rien n'a été retenu ... Il est vrai que c'est plus facile de prendre la position du b, comme point de repère, du fait qu'il n'y en a qu'un. Si maintenant le b éta it un exemple, et qu'on a des textes variables, là bien sûr, ça ne mar che plus, il faut en revenir au split qui est fait exprès pour.
A moins de constater que le b se trouve deux caractères après la première barre oblique, donc à TROUVE("/";A1) + 2, qu'on mettrait à la place de TROUVE("b";A1).
Jose SISA
Booonnjouuuuuurrrr ....
je m'a trompa ...
enfin, presque, disont que, dans mes exemples je parle de "bbbbbb" de "qqqqqq" de "aaaaaaa" .....
et donc, vous avez (cesar?) utilisé la matière que je donne pour m'aider.
méaaaculpette !
il est vrai que l'exemple, me semble-t-il à enduit tout le monde d'erreur ! mais, il se trouve que je ne recherque que les caractères qui se trouve entre le Xième "/" et le Yième "/"
parceque des fois j'ai "bbbbbbb", mais d'autre fois j'ai "lkjhlkjhljkh" et d'autres fois encore des "tyutuyru"
donc, mes seuls repères sont les "/".
En fait, c'est un peu comme avec split, décomposer cette chaine de caractères en un tableau indicé et chercher les "/", repére r le Xième, et Yième (dans mon cas le 3ième et 4ième) puis, filer tou t çà à la fonction STXT pour récuperer ce que je souhaite ...
rappel : je ne peux pas faire de vba bananasplit ! gasp ... José
On 6 avr, 15:18, Gloops wrote:
Jacquouille a écrit, le 05/04/2012 20:42 :
> 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)
Eh oui : c'est pour ça que ça ne marche pas, parce que le nombre de b est variable.
Avec l'inconvénient par rapport à la fonction split que c'est moins l isible. Le deuxième argument dit où commencer, ça ça va. Le troisième, pour donner la longueur, cherche la barre oblique, en démarrant au b [TROUVE("/";A1;TROUVE("b";A1))], puis retire la position du b [TROUVE("b";A1)].
Mais ... ça ressemble furieusement à la deuxième proposition de Mic hD, dont rien n'a été retenu ... Il est vrai que c'est plus facile de prendre la position du b, comme point de repère, du fait qu'il n'y en a qu'un. Si maintenant le b éta it un exemple, et qu'on a des textes variables, là bien sûr, ça ne mar che plus, il faut en revenir au split qui est fait exprès pour.
A moins de constater que le b se trouve deux caractères après la première barre oblique, donc à TROUVE("/";A1) + 2, qu'on mettrait à la place de TROUVE("b";A1).
Booonnjouuuuuurrrr ....
je m'a trompa ...
enfin, presque, disont que, dans mes exemples
je parle de "bbbbbb" de "qqqqqq" de "aaaaaaa" .....
et donc, vous avez (cesar?) utilisé la matière que je donne
pour m'aider.
méaaaculpette !
il est vrai que l'exemple, me semble-t-il à enduit tout le monde
d'erreur ! mais, il se trouve que je ne recherque que les caractères
qui se trouve entre le Xième "/" et le Yième "/"
parceque des fois j'ai "bbbbbbb", mais d'autre fois j'ai
"lkjhlkjhljkh"
et d'autres fois encore des "tyutuyru"
donc, mes seuls repères sont les "/".
En fait, c'est un peu comme avec split, décomposer cette
chaine de caractères en un tableau indicé et chercher les "/", repére r
le Xième, et Yième (dans mon cas le 3ième et 4ième) puis, filer tou t
çà à la fonction STXT pour récuperer ce que je souhaite ...
rappel : je ne peux pas faire de vba
bananasplit !
gasp ...
José
On 6 avr, 15:18, Gloops <glo...@zailes.invalid.org> wrote:
Jacquouille a écrit, le 05/04/2012 20:42 :
> 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)
Eh oui : c'est pour ça que ça ne marche pas, parce que le nombre de b
est variable.
Avec l'inconvénient par rapport à la fonction split que c'est moins l isible.
Le deuxième argument dit où commencer, ça ça va.
Le troisième, pour donner la longueur, cherche la barre oblique, en
démarrant au b [TROUVE("/";A1;TROUVE("b";A1))], puis retire la position
du b [TROUVE("b";A1)].
Mais ... ça ressemble furieusement à la deuxième proposition de Mic hD,
dont rien n'a été retenu ...
Il est vrai que c'est plus facile de prendre la position du b, comme
point de repère, du fait qu'il n'y en a qu'un. Si maintenant le b éta it
un exemple, et qu'on a des textes variables, là bien sûr, ça ne mar che
plus, il faut en revenir au split qui est fait exprès pour.
A moins de constater que le b se trouve deux caractères après la
première barre oblique, donc à TROUVE("/";A1) + 2, qu'on mettrait à la
place de TROUVE("b";A1).
enfin, presque, disont que, dans mes exemples je parle de "bbbbbb" de "qqqqqq" de "aaaaaaa" .....
et donc, vous avez (cesar?) utilisé la matière que je donne pour m'aider.
méaaaculpette !
il est vrai que l'exemple, me semble-t-il à enduit tout le monde d'erreur ! mais, il se trouve que je ne recherque que les caractères qui se trouve entre le Xième "/" et le Yième "/"
parceque des fois j'ai "bbbbbbb", mais d'autre fois j'ai "lkjhlkjhljkh" et d'autres fois encore des "tyutuyru"
donc, mes seuls repères sont les "/".
En fait, c'est un peu comme avec split, décomposer cette chaine de caractères en un tableau indicé et chercher les "/", repére r le Xième, et Yième (dans mon cas le 3ième et 4ième) puis, filer tou t çà à la fonction STXT pour récuperer ce que je souhaite ...
rappel : je ne peux pas faire de vba bananasplit ! gasp ... José
On 6 avr, 15:18, Gloops wrote:
Jacquouille a écrit, le 05/04/2012 20:42 :
> 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)
Eh oui : c'est pour ça que ça ne marche pas, parce que le nombre de b est variable.
Avec l'inconvénient par rapport à la fonction split que c'est moins l isible. Le deuxième argument dit où commencer, ça ça va. Le troisième, pour donner la longueur, cherche la barre oblique, en démarrant au b [TROUVE("/";A1;TROUVE("b";A1))], puis retire la position du b [TROUVE("b";A1)].
Mais ... ça ressemble furieusement à la deuxième proposition de Mic hD, dont rien n'a été retenu ... Il est vrai que c'est plus facile de prendre la position du b, comme point de repère, du fait qu'il n'y en a qu'un. Si maintenant le b éta it un exemple, et qu'on a des textes variables, là bien sûr, ça ne mar che plus, il faut en revenir au split qui est fait exprès pour.
A moins de constater que le b se trouve deux caractères après la première barre oblique, donc à TROUVE("/";A1) + 2, qu'on mettrait à la place de TROUVE("b";A1).
Gloops
Jose SISA a écrit, le 06/04/2012 16:05 :
parceque des fois j'ai "bbbbbbb", mais d'autre fois j'ai "lkjhlkjhljkh" et d'autres fois encore des "tyutuyru"
donc, mes seuls repères sont les "/".
Si tu pouvais relire mon avant-dernier paragraphe ...
Jose SISA a écrit, le 06/04/2012 16:05 :
parceque des fois j'ai "bbbbbbb", mais d'autre fois j'ai
"lkjhlkjhljkh"
et d'autres fois encore des "tyutuyru"
donc, mes seuls repères sont les "/".
Si tu pouvais relire mon avant-dernier paragraphe ...
Une petite mise à jour du fichier exemple pour la formule :
http://cjoint.com/?BDhm6BOBM1h
MichD ------------------------------------------
Fredo P.
Bonjour Jose avec la chaine en B7, =CHERCHE("§";SUBSTITUE(B7;"/";"§";3)) ' te donne la position du 3ème "/" .=CHERCHE("§";SUBSTITUE(B7;"/";"§";4))' te donne la position du 4ème "/" Avec cela, je suppose que tu as la solution! "Jose SISA" a écrit dans le message de news:
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 Jose
avec la chaine en B7,
=CHERCHE("§";SUBSTITUE(B7;"/";"§";3)) ' te donne la position du 3ème "/"
.=CHERCHE("§";SUBSTITUE(B7;"/";"§";4))' te donne la position du 4ème "/"
Avec cela, je suppose que tu as la solution!
"Jose SISA" <jose6a@gmail.com> a écrit dans le message de news:
88b9cef3-fc87-4259-9739-13b3523bbfb2@j14g2000vbc.googlegroups.com...
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 "/".
Bonjour Jose avec la chaine en B7, =CHERCHE("§";SUBSTITUE(B7;"/";"§";3)) ' te donne la position du 3ème "/" .=CHERCHE("§";SUBSTITUE(B7;"/";"§";4))' te donne la position du 4ème "/" Avec cela, je suppose que tu as la solution! "Jose SISA" a écrit dans le message de news:
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 "/".