Extraire valeur entre 2 champs

dudumomo

XLDnaute Occasionnel
Bonjour a tous,

Je souhaite extraire une valeur entre 2 champs mais j'ai quelques difficulités.

Il me faut extraire la valeur entre "Model: " et "," ou "." ou ":" ou ";"

Voila quelques exemples:
Blablabla, Model: 123, blablabla ===> Doit me rendre 123
Blablabla Model: 123, blablabla ===> Doit me rendre 123
Blablabla. Model: 123. blablabla ===> Doit me rendre 123
Blablabla, Model: 123; blablabla ===> Doit me rendre 123

Des idées sur comment faire?

Je passait par:
=IFERROR(MID(LEFT(A1,SEARCH(",",A1)-1),SEARCH("Model: ",A1)+7,LEN(A1)),"")
avant, mais la vu que j'ai plusieurs signes de ponctuations...et surtout si il y avait une virgule avant Model: la formule ne fonctionnait plus.

Merci de votre aide
 

Paf

XLDnaute Barbatruc
Re : Extraire valeur entre 2 champs

Bonjour dudumomo, BOISGONTIER,

un essai par fonction personnalisée (à copier dans un module standard et utiliser comme une fonction normale)

Code:
Function Extrait(Cel)
 Dim Signe, Deb As Byte, Fin As Byte
 Signe = Array(",", ".", ":", ";")
 Deb = InStr(1, Cel, "Model:", 1)
 Deb = Deb + 6
 For i = LBound(Signe) To UBound(Signe)
    Fin = InStr(Deb, Cel, Signe(i))
    If Fin > 0 Then Exit For
 Next
 Extrait = Mid(Cel, Deb, Fin - Deb)
End Function

fonctionne pour les exemples fournis, à vérifier pour toutes les configurations.

A+
 

Paf

XLDnaute Barbatruc
Re : Extraire valeur entre 2 champs

re,

Si les données à traiter sont en plage A1:A20 (par ex.) en B1 : =Extrait(A1) puis tirer vers le bas

sans classeur contenant quelques données à traiter, difficile de dire ce qui ne va pas ( structure des données ...)

A+
 

dudumomo

XLDnaute Occasionnel
Re : Extraire valeur entre 2 champs

Bonjour,
Bon ca fonctionne maintenant...j'avais du faire des modifications...

Cependant j'ai encore quelques problemes.
J'ai des trucs en vietnamien comme:
=> Bộ cung cấp nguồn một chiều DC gồm 1 rack chứa 04 mô đun nguồn Flatpack 2 3000 HE,1module điều khiển,2cảm biến nhiệt,1chống sét AC,1chống sét DC, nguồn đầu vào AC...; Hsx:Eltek Power;Mới 100%
==> Il n'y a pas de Model: la dedans et devrait donc ne rien afficher.

=> Bộ nguồn cấp điện liên tục, Model: 9395: mỗi,
==> Ca me donne "Model: 9395: mỗi", il faudrait me donner "9395" seulement

Merci de votre aide.
 

dudumomo

XLDnaute Occasionnel
Re : Extraire valeur entre 2 champs

Merci encore Cisco,

Ca fonctionne pas trop mal sauf sur:

Bộ nguồn cấp điện liên tục(Prod) hiệu Chepmi mới100% model:ABB600 (evalue codeXa4242)
Bộ nguồn cấp diện liên tục Prod - Model:ABE4587 (hàng mới 100%)

Peut etre en rapport avec les parenthèses? (je n'avais pas pensé a cela)

Merci!
 

CISCO

XLDnaute Barbatruc
Re : Extraire valeur entre 2 champs

Bonjour
Merci encore Cisco,

Ca fonctionne pas trop mal sauf sur:

Peut etre en rapport avec les parenthèses? (je n'avais pas pensé a cela)

Merci!

Non, ce n'est pas à cause des parenthèses. La formule dans mon dernier fichier cherche le premier espace après le terme Model, et écrit les nombres juste après. Cela allait avec tes premiers exemples, pas avec les deux derniers car il ni y a pas d'espace devant les nombres à conserver !

@ plus
 
Dernière édition:

CISCO

XLDnaute Barbatruc
Re : Extraire valeur entre 2 champs

Bonjour

Une autre possibilité en pièce jointe.

@ plus

P.S : Cette fois-ci, la recherche est faite par rapport à l'espace, à la virgule,..., c-à-d aux critères que tu as cités dans ton premier post.
 

Pièces jointes

  • essai2.xlsx
    9.2 KB · Affichages: 51
  • essai2.xlsx
    9.2 KB · Affichages: 43
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 502
Messages
2 089 047
Membres
104 011
dernier inscrit
dfr