Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Extraire la "portion" numérique ?

19 réponses
Avatar
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

10 réponses

1 2
Avatar
Daniel.C
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
Avatar
Fredo P.
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" a écrit dans le message de news:

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
Avatar
Patrick BASTARD
Allez, Daniel, encore un petit effort...
:-)

--
Bien ,

Patrick
patrick.bastardchezdbmail.com

"Daniel.C" a écrit dans le message de
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





Avatar
Fredo P.
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" a écrit dans le message de news:

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
Avatar
Daniel.C
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" a écrit dans le message de
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





Avatar
Michel MTO
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." a écrit dans le message
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" a écrit dans le message de news:

> 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


Avatar
Michel MTO
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" a écrit dans le message de
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" a écrit dans le message de
> 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
>>
>>
>>


Avatar
Daniel.C
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" a écrit dans le message de
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" a écrit dans le message de
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
Avatar
Michel MTO
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" a écrit dans le message de
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" a écrit dans le message de
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" a écrit dans le message de
> > 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
> >>
> >>
> >>
>
>


Avatar
Michel MTO
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" a écrit dans le message de
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" a écrit dans le message de
> 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" a écrit dans le message de
>>> 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


1 2