Extraire un nombre décimal d'un texte

ufernet

XLDnaute Junior
Bonjour,

Je souhaite extraire avec une formule ou une macro un nombre qui peut avoir un chiffre, deux chiffres ou être décimal (exemple 12,5) La décimale sera toujours ,5 et le maximum de chiffre avant la virgule ou sans virgule sera de 2. La difficulté majeure pour moi c'est que dans le texte il peut y avoir des chiffres accolés au texte sans espace et que je ne veux pas extraire.

Sur le forum j'ai trouvé une formule qui fonctionne bien sauf pour les nombres décimaux et pour les chiffres collés au texte (il s'agit du nom d'un service).

J'ai joint un exemple avec le résultat espéré et la formule matricielle trouvé sur le forum.

Merci
 

Pièces jointes

  • Export.xls
    14.5 KB · Affichages: 149
  • Export.xls
    14.5 KB · Affichages: 149
  • Export.xls
    14.5 KB · Affichages: 148

youky(BJ)

XLDnaute Barbatruc
Re : Extraire un nombre décimal d'un texte

Bonjour,
Voici un exemple de macro (test ok)
Bruno
Code:
Sub metvaleur()
For lig = 2 To [A65000].End(3).Row
y = "": tt = ""
tx = Cells(lig, 1)
x = Len(tx)
For k = x To 1 Step -1
y = Mid(tx, k, 1)
If y = "," Or IsNumeric(y) Then tt = y & tt: ok = True
If ok And y = " " Then ok = False: Exit For
Next
Cells(lig, 2) = CDbl(tt)
Next
End Sub
 

Tibo

XLDnaute Barbatruc
Re : Extraire un nombre décimal d'un texte

Bonsoir,

Une solution avec une formule matricielle qui semble fonctionner :

Code:
=STXT(A2;EQUIV(1;(GAUCHE(STXT(A2;LIGNE($1:$50);2))=" ")*(ESTNUM(DROITE(STXT(A2;LIGNE($1:$50);2))*1));0)+1;MAX(ESTNUM(STXT(A2;LIGNE($1:$50);1)*1)*LIGNE($1:$50))-EQUIV(1;(GAUCHE(STXT(A2;LIGNE($1:$50);2))=" ")*(ESTNUM(DROITE(STXT(A2;LIGNE($1:$50);2))*1));0))

Formule matricielle à valider par CTRL + MAJ + ENTREE

Principe : repérer le rang d'un chiffre précédé d'un espace jusqu'au rang du dernier caractère numérique.

A tester sur un échantillon plus vaste et plus varié

@+
 

Staple1600

XLDnaute Barbatruc
Re : Extraire un nombre décimal d'un texte

Bonsoir à tous


1) Utiliser Données/Convertir
dconv.jpg
2) Utiliser une formule de ce type:
=MOD(A1;1)*100

exemple si en A1: 123,45 et qu'on utilise la formule ci-dessus on obtient : 45
 
Dernière édition:

ufernet

XLDnaute Junior
Re : Extraire un nombre décimal d'un texte

Bonjour,

Merci pour toutes ces solutions. Celle de James007 marche sauf pour les décimaux. La formule matricielle de Tibo marche dans tous les cas (1254 enregistrements!) La macro de Youki fonctionne bien mais s'arrête si elle ne trouve que du texte sans nombre. Merci à tous mon problème est résolu plutôt 4 fois qu'une.
 

Discussions similaires

Statistiques des forums

Discussions
312 367
Messages
2 087 648
Membres
103 628
dernier inscrit
rou37x