Extraire chaine de caractères entre deux données

Bonjour,

Je viens vers vous car j'ai un petit souci pour traiter des données d'un fichier.

Dans une cellule j'ai plein d'informations dont une seule partie m'intéresserait pour pouvoir faire un rapprochement avec un autre fichier.

Exemple : contenu de la cellule : "Commande reçue le 1er juillet CDE1232616 Matériel"

ce que je voudrais c'est extraire "CDE1232616", càd que dans chacun de mes libellés il faudrait que je prenne le texte à partir du moment où excel trouve "CDE" et avec tous les caractères suivants jusqu'au prochain "espace"

Par avance merci de votre aide,

N.

Bonjour. Bienvenue sur le Forum

Exemple, ton texte en A2, la formule

=GAUCHE(STXT(A2;CHERCHE("CDE";A2;1);NBCAR(A2));CHERCHE(CAR(32);STXT(A2;CHERCHE("CDE";A2;1);NBCAR(A2));1)-1)

Cordialement

553classeur10.xls (14.00 Ko)

Également, et un peu plus court:

=SUPPRESPACE(STXT(A1;TROUVE("CDE";A1);TROUVE(" ";A1;TROUVE("CDE";A1))-TROUVE("CDE";A1)))

Cordialement

Bonjour,

2 solutions

Par formule

=STXT(A1;TROUVE("CDE";A1);TROUVE(" ";STXT(A1;TROUVE("CDE";A1);NBCAR(A1))))

Par fonction personnalisée VBA

Option Explicit
Public Function Commande(Valeur As String) As String
Dim tmp
    If Valeur = "" Then Exit Function
    tmp = Split(Valeur, " ")
    Commande = tmp(5)
End Function
254arprens-v1.xlsm (14.44 Ko)

Merci pour vos formules,

La seconde de XOR LX fonctionne nickel avec ma demande initiale,

=SUPPRESPACE(STXT(D10;TROUVE("CDE";D10);TROUVE(" ";D10;TROUVE("CDE";D10))-TROUVE("CDE";D10)))

Par contre je me rends compte que ma demande n'était pas complète par rapport à mon besoin, car les libellés n'étant jamais écris dans le même ordre, je peux me retrouver avec les champs à extraire "CDE1232626" en fin de chaine et donc là derrière il n'y a pas d'"espace".

Est-ce qu'il est facile de rajouter dans la formule cette condition, càd "espace" ou "rien" ?

Sinon, tanpis je rajouterai dans mon champs initial un espace à la fin de tous les libellés.

Par avance merci beaucoup,

N.

Pas de problème:

=SUPPRESPACE(STXT(D10&" ";TROUVE("CDE";D10&" ");TROUVE(" ";D10&" ";TROUVE("CDE";D10&" "))-TROUVE("CDE";D10&" ")))

Cordialement

Alors là je dis MERCI !!!!

Super ça fonctionne tout comme je veux

N.

Je vous en prie et bonne journée !

Rechercher des sujets similaires à "extraire chaine caracteres entre deux donnees"