Extraire texte entre 2 caractères différent

Bonjour à tous,

J'ai un souci et je n'ai pas trouvé mon bonheur sur les forums

Je m'explique , je voudrais extraite un texte (nb de caractéres aléatoire) entre 2 caractères . (en formule excel et pas en VBA)

La difficulté pour moi c'est que l'extraction doit commence après le dernier "_" et jusqu'a l' " " suivant

pour exemple:

demain_journée_dimanche date

là je doit extraire dimanche entre le 2éme "_" et l'" ". sachant que le nb "_" et variable et que l' " " et toujours avant la date et que le texte à extraire et variable en nb de caractéres

J’espère à voir été suffisamment claire .

je vous remercie par avance de l'aide que vous pourrais m'apporter

Bonne journée

Lasource06

Bonjour,

une proposition si ton texte est en A1

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

Bonjour h2so4

Merci pour ta réponse mais elle ne fonctionne pas sur tous les cas

liste des cas OK et Nok

(le nb de croix correspond au nb de lettre des mots dans la chaines, en gras les mots à extraire)

1) XXXXX_C_XXXXX-XXX 170406 --> formule OK me renvoie bien XXXXX-XXX

2) XXXXX_C_XXXXX 170406 --> formule Nok renvoi C_XXXXX

3) XXXXX_C_Xxxxx_XXXXXX-XXX-X 170406 --> me renvoi #VALEUR

Information complémentaire

Les caractères en italique sont fixe soit jusqu'au 2éme "_"

re-Bonjour,

je me suis basé sur l'hypothèse que j'aurais un jour de la semaine pour faire une formule simplifiée. essaie ceci qui fonctionne pour les cas que tu as indiqués

=GAUCHE(SUPPRESPACE(DROITE(SUBSTITUE(SUPPRESPACE(A1);"_";REPT(" ";NBCAR(SUPPRESPACE(A1))));NBCAR(SUPPRESPACE(A1))));TROUVE(" ";SUPPRESPACE(DROITE(SUBSTITUE(SUPPRESPACE(A1);"_";REPT(" ";NBCAR(SUPPRESPACE(A1))));NBCAR(SUPPRESPACE(A1)))))-1)

Re-bonjour..h2so4

Super!!! ca marche nickel !!

Je n'ai pas tous compris dans la formule mais l'essentiel c'est que cela fonctionne.

Merci beaucoup pour ton aide

Je passe le sujet en résolue

Lasource06

Lasource06 a écrit :

Re-bonjour..h2so4

Super!!! ca marche nickel !!

Je n'ai pas tous compris dans la formule mais l'essentiel c'est que cela fonctionne.

Merci beaucoup pour ton aide

Je passe le sujet en résolue

Lasource06

cela aurait été plus simple et plus lisible en vba.

Function adernier(s)
s = Left(s, InStr(s, " ") - 1) 'supprime les caractères à partir du blanc
adernier = Mid(s, InStrRev(s, "_") + 1) ' prend ce qui est après le dernier "_" trouvé
End Function
Rechercher des sujets similaires à "extraire texte entre caracteres different"