Extraire chaine de caractere

Bonjour les amis, je souhaiterai extraire uniquement le mot qui est situé après le second espace.

exemple :

S2 CARB ESSO DE-456-DV

Je veux uniquement extraire le mot ESSO et rien d'autre.

Quelqu'un pourrait m'aider svp ?

Bonjour MILOUD57000,

Une solution avec ton texte en cellule A1 :

=STXT(A1;TROUVE(" ";A1;TROUVE(" ";A1)+1)+1;TROUVE(" ";A1;TROUVE(" ";A1;TROUVE(" ";A1)+1)+1)-TROUVE(" ";A1;TROUVE(" ";A1)+1)-1)

Le principe :

1. On cherche le premier espace

2. On cherche le deuxième espace (à l'aide de la position du premier espace) --> 8 par exemple

3. On cherche la position du 3è espace --> 13 par exemple

4. On fait position 3è espace - position 2è espace = 13-8 = 5

5. On fait -1 --> 5-1=4

6. On extrait alors 4 caractères à partir de 8+1 --> ESSO

bonjour,

En VBA ça donne :

Function STR2()
STR2 = Split(ActiveCell, " ")(2)
End Function

A+

Mes amis, je viens de tester, malheureusement ça ne fonctionne pas, ni en formule ni en fonction.

Pour la fonction, je l'ai mise dans un module en vba, puis sur une cellule j'ai écrit = STR2(A1)

Le résultat : #REF !


Autant pour moi les amis, il y avait un espace de trop voilà pourquoi ça ne fonctionnait pas.

Pour vba-new ça marche très bien pour cette exemple

Pour galopin, je vais tester


Galopin, pour la fonction ne fonctionne pas, c'est dommage, je préfère travailler avec du vba que des formules.

Merci encore et à bientôt

Bonjour,

Oui curieusement ça ne marche qu'en mode débogage !

Il faut changer de nom pour la fonction,

de plus passer la cellule (ou le string) en paramètre peut être plus confortable qu'avec ActiveCell :

Function STRZ$(ref)
STRZ = Split(ref, " ")(2)
End Function

A+

En tout les cas ça fonctionne très bien et ça me permet d'adapter à d'autres cellule et d'autres nombre d'espace, franchement nickel.

Merci encore

dsl mauvais post

Rechercher des sujets similaires à "extraire chaine caractere"