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

9 réponses

1 2
Avatar
Daniel.C
Il faut soit le modifier dans les paramètres locaux de Windows, soit,
dans les options Excel.
Daniel

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
Avatar
Michel MTO
Ok merci, je regarde çà.
(En espèrant que le changement n'influencera pas, toutes les procèdures VBA
que j'ai déjà mis en place.)

Michel MTO

"Daniel.C" a écrit dans le message de
news:%23%
Il faut soit le modifier dans les paramètres locaux de Windows, soit,
dans les options Excel.
Daniel

> 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


Avatar
Caetera
"LANIMAL" a écrit dans le message de news:

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.



**********************

Avec le séparateur décimal système identique à celui de la chaîne :
Matricielle (validation ctrl+maj+enter

=1*STXT(A1;MIN(SI(ESTNUM(1*STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1))*LIGNE(INDIRECT("1:"&NBCAR(A1)))>0;ESTNUM(1*STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1))*LIGNE(INDIRECT("1:"&NBCAR(A1)))));MAX(ESTNUM(1*STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1))*LIGNE(INDIRECT("1:"&NBCAR(A1))))-MIN(SI(ESTNUM(1*STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1))*LIGNE(INDIRECT("1:"&NBCAR(A1)))>0;ESTNUM(1*STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1))*LIGNE(INDIRECT("1:"&NBCAR(A1)))))+1)

Etc
Avatar
LANIMAL
Et beh... oui, mais le code où vais-je le chercher ?
Merci

Daniel.C a écrit :
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
Ah un post avant de réactualiser ses messages, çà arrive !!!

"LANIMAL" a écrit dans le message de
news:%


Et beh... oui, mais le code où vais-je le chercher ?
Merci

Daniel.C a écrit :
> 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
LANIMAL
Exact, tu as tout compris.
En tout cas merci à Fredo et toi pour votre échange qui m'a beaucoup
instruit.
Je vais maintenant gagner beaucoup de temps.
Bonne soirée.

Michel MTO a écrit :
Ah un post avant de réactualiser ses messages, çà arrive !!!

"LANIMAL" a écrit dans le message de
news:%

Et beh... oui, mais le code où vais-je le chercher ?
Merci

Daniel.C a écrit :
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.
Aussi:
Une formule signée AV pour extraire une valeur numérique qui ne fonctionne
qu'avec le point comme séparareur décimal.
Evaluate("1*(MID(A1,MATCH(0,(ISERROR(MID(A1,ROW(1:" & [LEN(A1)] &
" ),1)*1)*1),0),LEN(A1)+1-SUM((ISERROR(MID(A1,ROW(1:" & [LEN(A1)] &
"),1)*1)*1))))")


"Patrick BASTARD" a écrit dans le
message de news:
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
Tatanka
Salut,

Et une autre suggestion un peu tardive :

Public Function nombre(c As Range)
Dim pr
v = c.Value
L = Len(v)
ReDim pr(1 To L)
For I = 1 To L
x = Mid(v, I, 1)
If (Asc(x) > 47 And Asc(x) < 58) Then
k = k + 1
pr(k) = I
End If
Next I
nombre = Replace(Mid(v, pr(1), pr(k) - pr(1) + 1), ".", ",")
End Function

Serge


"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
JB
Bonsoir,

http://cjoint.com/?eAwdOqOFcZ

=STXT(A1;EQUIV(VRAI;ESTNUM(CNUM(STXT(A1;LIGNE($1:$255);1)));0);SOMME(--
(ESTNUM(CNUM(STXT(SUBSTITUE(A1;".";"0");LIGNE($1:$255);1))))))
Valider avec Maj+ctrl+entrée

ou avec virgule en numérique

=CNUM(SUBSTITUE(STXT(A2;EQUIV(VRAI;ESTNUM(CNUM(STXT(A2;LIGNE($1:$255);
1)));0);SOMME(--(ESTNUM(CNUM(STXT(SUBSTITUE(A2;".";"0");LIGNE($1:$255);
1))))));".";","))
Valider avec Maj+ctrl+entrée

JB
http://boisgontierjacques.free.fr/





On 26 avr, 14:55, LANIMAL wrote:
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