Extraire la "portion" numérique ?

Le
LANIMAL
Bonjour,
Existe-t-il une fonction EXCEL qui permet d'extraire un nombre inclus
dans une chaîne ?
Exemples :
Total de Toto : 256.25 -> 256.25
Prix pour 24 pièces -> 24

J'arrive à résoudre le pb avec STXT( )
mais c'est lourd (et pas évident) de définir la place du nombre dans la
chaîne, et le nombre de caractères du nombre.
Merci
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Daniel.C
Le #21632411
Bonjour.
Mets le code suivant dans module standard et essaie la fonction perso :
=ExtraireNum
Cordialement.
Daniel

Bonjour,
Existe-t-il une fonction EXCEL qui permet d'extraire un nombre inclus dans
une chaîne ?
Exemples :
Total de Toto : 256.25 -> 256.25
Prix pour 24 pièces -> 24

J'arrive à résoudre le pb avec STXT(... )
mais c'est lourd (et pas évident) de définir la place du nombre dans la
chaîne, et le nombre de caractères du nombre.
Merci
Fredo P.
Le #21632401
Si les 2 points ":" sont toujours présents juste avant le montant
Dans un module:
Public Function Extr(a$) as Double
Extr = Mid(a, InStr(a, ":") + 1, Len(a) - InStr(a, ":") + 1)
End Function

A1=Total de Toto : 256.25
dans une cellule: =Extr(A1)

"LANIMAL"
Bonjour,
Existe-t-il une fonction EXCEL qui permet d'extraire un nombre inclus dans
une chaîne ?
Exemples :
Total de Toto : 256.25 -> 256.25
Prix pour 24 pièces -> 24

J'arrive à résoudre le pb avec STXT(... )
mais c'est lourd (et pas évident) de définir la place du nombre dans la
chaîne, et le nombre de caractères du nombre.
Merci
Patrick BASTARD
Le #21632391
Allez, Daniel, encore un petit effort...
:-)

--
Bien ,

Patrick
patrick.bastardchezdbmail.com

"Daniel.C" news:%
Bonjour.
Mets le code suivant dans module standard et essaie la fonction perso :
=ExtraireNum
Cordialement.
Daniel

Bonjour,
Existe-t-il une fonction EXCEL qui permet d'extraire un nombre inclus
dans une chaîne ?
Exemples :
Total de Toto : 256.25 -> 256.25
Prix pour 24 pièces -> 24

J'arrive à résoudre le pb avec STXT(... )
mais c'est lourd (et pas évident) de définir la place du nombre dans la
chaîne, et le nombre de caractères du nombre.
Merci





Fredo P.
Le #21632501
Valable pour les deux
Public Function Extr(a$) As Double
Dim I As Byte, b$, J As Byte
For I = 1 To Len(a)
J = Asc(Mid(a, I, 1))
If (J > 47 And J < 58) Or J = 44 Or J = 46 Then
b = b & Mid(a, I, 1)
End If
Next
Extr = b
End Function
"LANIMAL"
Bonjour,
Existe-t-il une fonction EXCEL qui permet d'extraire un nombre inclus dans
une chaîne ?
Exemples :
Total de Toto : 256.25 -> 256.25
Prix pour 24 pièces -> 24

J'arrive à résoudre le pb avec STXT(... )
mais c'est lourd (et pas évident) de définir la place du nombre dans la
chaîne, et le nombre de caractères du nombre.
Merci
Daniel.C
Le #21632491
J'avais fait le plus gros, non ?

Function ExtraireNum(c As Range)
For Each Item In Split(c.Value, " ")
On Error Resume Next
Item = CDbl(Item)
If IsNumeric(Item) Then
ExtraireNum = CDbl(Item)
Exit For
End If
Next Item
End Function

Daniel

Allez, Daniel, encore un petit effort...
:-)

--
Bien ,

Patrick
patrick.bastardchezdbmail.com

"Daniel.C" news:%
Bonjour.
Mets le code suivant dans module standard et essaie la fonction perso :
=ExtraireNum
Cordialement.
Daniel

Bonjour,
Existe-t-il une fonction EXCEL qui permet d'extraire un nombre inclus dans
une chaîne ?
Exemples :
Total de Toto : 256.25 -> 256.25
Prix pour 24 pièces -> 24

J'arrive à résoudre le pb avec STXT(... )
mais c'est lourd (et pas évident) de définir la place du nombre dans la
chaîne, et le nombre de caractères du nombre.
Merci





Michel MTO
Le #21632481
Bonjour Fredo P,

Pour info :
après un test : #VALEUR! est renvoyé, à cause du point, après 256. Je l'ai
remplacé par une virgule et çà fonctionne !!!

Michel MTO

"Fredo P." de news:
Si les 2 points ":" sont toujours présents juste avant le montant
Dans un module:
Public Function Extr(a$) as Double
Extr = Mid(a, InStr(a, ":") + 1, Len(a) - InStr(a, ":") + 1)
End Function

A1=Total de Toto : 256.25
dans une cellule: =Extr(A1)

"LANIMAL"
> Bonjour,
> Existe-t-il une fonction EXCEL qui permet d'extraire un nombre inclus


dans
> une chaîne ?
> Exemples :
> Total de Toto : 256.25 -> 256.25
> Prix pour 24 pièces -> 24
>
> J'arrive à résoudre le pb avec STXT(... )
> mais c'est lourd (et pas évident) de définir la place du nombre dans la
> chaîne, et le nombre de caractères du nombre.
> Merci


Michel MTO
Le #21632651
Bonjour Daniel,
J'ai pas trop compris le code, mais après un test fonctionne très bien sur :
Prix pour 24 pièces, mais renvoie zéro sur Total de Toto : 256.25 !!

Michel MTO

"Daniel.C" news:%
J'avais fait le plus gros, non ?

Function ExtraireNum(c As Range)
For Each Item In Split(c.Value, " ")
On Error Resume Next
Item = CDbl(Item)
If IsNumeric(Item) Then
ExtraireNum = CDbl(Item)
Exit For
End If
Next Item
End Function

Daniel

> Allez, Daniel, encore un petit effort...
> :-)
>
> --
> Bien ,
>
> Patrick
> patrick.bastardchezdbmail.com
>
> "Daniel.C" > news:%
>> Bonjour.
>> Mets le code suivant dans module standard et essaie la fonction perso :
>> =ExtraireNum
>> Cordialement.
>> Daniel
>>
>>> Bonjour,
>>> Existe-t-il une fonction EXCEL qui permet d'extraire un nombre inclus


dans
>>> une chaîne ?
>>> Exemples :
>>> Total de Toto : 256.25 -> 256.25
>>> Prix pour 24 pièces -> 24
>>>
>>> J'arrive à résoudre le pb avec STXT(... )
>>> mais c'est lourd (et pas évident) de définir la place du nombre dans


la
>>> chaîne, et le nombre de caractères du nombre.
>>> Merci
>>
>>
>>


Daniel.C
Le #21632641
Bonjour.
Est-ce que le point est ton symbole décimal ? Ce devrait être le cas si
tu entres 256.25.
Le code est basé sur la fonction Split qui tronçonne une chaîne de
caractères suivant le caractère entré dans la fonction (ici un espace).
Cordialement.
Daniel

Bonjour Daniel,
J'ai pas trop compris le code, mais après un test fonctionne très bien sur :
Prix pour 24 pièces, mais renvoie zéro sur Total de Toto : 256.25 !!

Michel MTO

"Daniel.C" news:%
J'avais fait le plus gros, non ?

Function ExtraireNum(c As Range)
For Each Item In Split(c.Value, " ")
On Error Resume Next
Item = CDbl(Item)
If IsNumeric(Item) Then
ExtraireNum = CDbl(Item)
Exit For
End If
Next Item
End Function

Daniel

Allez, Daniel, encore un petit effort...
:-)

--
Bien ,

Patrick
patrick.bastardchezdbmail.com

"Daniel.C" news:%
Bonjour.
Mets le code suivant dans module standard et essaie la fonction perso :
=ExtraireNum
Cordialement.
Daniel

Bonjour,
Existe-t-il une fonction EXCEL qui permet d'extraire un nombre inclus
dans une chaîne ?
Exemples :
Total de Toto : 256.25 -> 256.25
Prix pour 24 pièces -> 24

J'arrive à résoudre le pb avec STXT(... )
mais c'est lourd (et pas évident) de définir la place du nombre dans la
chaîne, et le nombre de caractères du nombre.
Merci
Michel MTO
Le #21632631
Je pense qu'il faut transformer 256.25 en 256,25 (avec une virgule).
Techniquement, je laisse faire les spécialistes du code.

Michel MTO

"Michel MTO" news:hr47h5$oih$
Bonjour Daniel,
J'ai pas trop compris le code, mais après un test fonctionne très bien sur


:
Prix pour 24 pièces, mais renvoie zéro sur Total de Toto : 256.25 !!

Michel MTO

"Daniel.C" news:%
> J'avais fait le plus gros, non ?
>
> Function ExtraireNum(c As Range)
> For Each Item In Split(c.Value, " ")
> On Error Resume Next
> Item = CDbl(Item)
> If IsNumeric(Item) Then
> ExtraireNum = CDbl(Item)
> Exit For
> End If
> Next Item
> End Function
>
> Daniel
>
> > Allez, Daniel, encore un petit effort...
> > :-)
> >
> > --
> > Bien ,
> >
> > Patrick
> > patrick.bastardchezdbmail.com
> >
> > "Daniel.C" > > news:%
> >> Bonjour.
> >> Mets le code suivant dans module standard et essaie la fonction perso


:
> >> =ExtraireNum
> >> Cordialement.
> >> Daniel
> >>
> >>> Bonjour,
> >>> Existe-t-il une fonction EXCEL qui permet d'extraire un nombre


inclus
dans
> >>> une chaîne ?
> >>> Exemples :
> >>> Total de Toto : 256.25 -> 256.25
> >>> Prix pour 24 pièces -> 24
> >>>
> >>> J'arrive à résoudre le pb avec STXT(... )
> >>> mais c'est lourd (et pas évident) de définir la place du nombre dans
la
> >>> chaîne, et le nombre de caractères du nombre.
> >>> Merci
> >>
> >>
> >>
>
>


Michel MTO
Le #21632751
Effectivement, quand j'entre 256.25 dans excel il me transforme le point en
virgule.
Mais là, pour le coup j'avais fait un copier coller.
Comment fait-on pour que le point soit le symbole décimal par défaut ?

Michel MTO

"Daniel.C" news:
Bonjour.
Est-ce que le point est ton symbole décimal ? Ce devrait être le cas si
tu entres 256.25.
Le code est basé sur la fonction Split qui tronçonne une chaîne de
caractères suivant le caractère entré dans la fonction (ici un espace).
Cordialement.
Daniel

> Bonjour Daniel,
> J'ai pas trop compris le code, mais après un test fonctionne très bien


sur :
> Prix pour 24 pièces, mais renvoie zéro sur Total de Toto : 256.25 !!
>
> Michel MTO
>
> "Daniel.C" > news:%
>> J'avais fait le plus gros, non ?
>>
>> Function ExtraireNum(c As Range)
>> For Each Item In Split(c.Value, " ")
>> On Error Resume Next
>> Item = CDbl(Item)
>> If IsNumeric(Item) Then
>> ExtraireNum = CDbl(Item)
>> Exit For
>> End If
>> Next Item
>> End Function
>>
>> Daniel
>>
>>> Allez, Daniel, encore un petit effort...
>>> :-)
>>>
>>> --
>>> Bien ,
>>>
>>> Patrick
>>> patrick.bastardchezdbmail.com
>>>
>>> "Daniel.C" >>> news:%
>>>> Bonjour.
>>>> Mets le code suivant dans module standard et essaie la fonction perso


:
>>>> =ExtraireNum
>>>> Cordialement.
>>>> Daniel
>>>>
>>>>> Bonjour,
>>>>> Existe-t-il une fonction EXCEL qui permet d'extraire un nombre


inclus
>>>>> dans une chaîne ?
>>>>> Exemples :
>>>>> Total de Toto : 256.25 -> 256.25
>>>>> Prix pour 24 pièces -> 24
>>>>>
>>>>> J'arrive à résoudre le pb avec STXT(... )
>>>>> mais c'est lourd (et pas évident) de définir la place du nombre dans


la
>>>>> chaîne, et le nombre de caractères du nombre.
>>>>> Merci


Publicité
Poster une réponse
Anonyme