OVH Cloud OVH Cloud

Chercher valeur dans une chaine de caractères

4 réponses
Avatar
loup
Bonjour,

J'ai un souci sur la recherche d'une partie de chaine de=20
caract=E8res =E0 l'int=E9rieur d'une chaine.

Exemple :
Ma chaine compl=E8te
0123A456789B444

Je voudrez extraire ce qu'il ya entre "A" et "B" de cette=20
chaine et afficher donc "456789" dans une autre colonne.
Dans une macro, comment puis-je faire ce syst=E8me de=20
recherche ? (sachant que j'ai environ 200 chaines de=20
caract=E8res avec des longueurs diff=E9rentes...)

Merci de votre aide.

4 réponses

Avatar
philip
Bonjour,
Dim MaChaine $, i as integer, j as integer, Extract $
For i=1 to Len(MaChaine) 'recherche de la position de A
If Mid(MaChaine, i, 1)= "A" Then
Exit For
End If
Next i
For j=1 to Len(MaChaine) 'recherche de la position de B
If Mid(MaChaine, j, 1)= "B" Then
Exit For
End If
Next j
Extract = Mid(MaChaine, i + 1, j - i - 1)


Bonjour,

J'ai un souci sur la recherche d'une partie de chaine de
caractères à l'intérieur d'une chaine.

Exemple :
Ma chaine complète
0123A456789B444

Je voudrez extraire ce qu'il ya entre "A" et "B" de cette
chaine et afficher donc "456789" dans une autre colonne.
Dans une macro, comment puis-je faire ce système de
recherche ? (sachant que j'ai environ 200 chaines de
caractères avec des longueurs différentes...)

Merci de votre aide.



Avatar
papou
Bonjour
Regarde la réponse que j'ai faite à Serge pour sa question "formule
extraction texte" du 17/03/2005.
Cordialement
Pascal

"loup" a écrit dans le message de
news:1abe01c52ba9$f1c14610$
Bonjour,

J'ai un souci sur la recherche d'une partie de chaine de
caractères à l'intérieur d'une chaine.

Exemple :
Ma chaine complète
0123A456789B444

Je voudrez extraire ce qu'il ya entre "A" et "B" de cette
chaine et afficher donc "456789" dans une autre colonne.
Dans une macro, comment puis-je faire ce système de
recherche ? (sachant que j'ai environ 200 chaines de
caractères avec des longueurs différentes...)

Merci de votre aide.
Avatar
loup
nickel,
merci

-----Message d'origine-----
Bonjour,
Dim MaChaine $, i as integer, j as integer, Extract $
For i=1 to Len(MaChaine) 'recherche de la position de A
If Mid(MaChaine, i, 1)= "A" Then
Exit For
End If
Next i
For j=1 to Len(MaChaine) 'recherche de la position de B
If Mid(MaChaine, j, 1)= "B" Then
Exit For
End If
Next j
Extract = Mid(MaChaine, i + 1, j - i - 1)


Bonjour,

J'ai un souci sur la recherche d'une partie de chaine
de


caractères à l'intérieur d'une chaine.

Exemple :
Ma chaine complète
0123A456789B444

Je voudrez extraire ce qu'il ya entre "A" et "B" de
cette


chaine et afficher donc "456789" dans une autre colonne.
Dans une macro, comment puis-je faire ce système de
recherche ? (sachant que j'ai environ 200 chaines de
caractères avec des longueurs différentes...)

Merci de votre aide.

.





Avatar
Gaenonius
Une fonction VBA perso :

''''''''''''''''''''
Function fPerso(cell, param1, param2)
Dim S
S = Split(Split(cell, param1)(1), param2)(0)
fPerso = S
End Function
''''''''''''''''''''

Si tes chaines d'origine sont en colonne A, pour extraire la partie qui
t'intéresse en colonne B saisis en B1

=fPerso(A1;"A";"B")

et tire vers le bas jusqu'en B200 (par exemple).

--
Gaenonius

Bonjour,

J'ai un souci sur la recherche d'une partie de chaine de
caractères à l'intérieur d'une chaine.

Exemple :
Ma chaine complète
0123A456789B444

Je voudrez extraire ce qu'il ya entre "A" et "B" de cette
chaine et afficher donc "456789" dans une autre colonne.
Dans une macro, comment puis-je faire ce système de
recherche ? (sachant que j'ai environ 200 chaines de
caractères avec des longueurs différentes...)

Merci de votre aide.