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

Extraire un nombre d'un texte

6 réponses
Avatar
raph
Salut à tou(te)s,

J'ai des valeurs qui se présentent sous cette forme : +12 345,67 EUR ou
-123,47 FRF et une fois copiées dans Excel, je ne peux rien en faire,
puisque c'est du texte.
Existe-t-il un moyen simple d'en obtenir la valeur numérique, par ex
sous la forme 12345.67 ?
J'ai essayé avec plusieurs rechercher-remplacer mais s'il y avait une
autre possibilité... J'ai essayé sans succès la formule
=CNUM(TEXTE(GAUCHE(CA12;NBCAR(CA12)-CHERCHE(" FRF";CA12)-4));"", je ne
trouve pas le format adéquat à mettre entre "" qui remplacerait la
virgule par un point.
Merci.

--
Raph

6 réponses

Avatar
Jp Pradier
Bonjour Raph

Utilise la fonction substitue() :

=Substitue(A1;",";".")
avec -123,47 FRF renvoie -123.47 FR

j-p
Avatar
Daniel.M
Bonjour Raph,

Il y a aussi moyen de procéder par 5 remplacements successifs des
mots/lettres que tu veux enlever.

Menu Édition/Remplacer (ne pas mettre les guillemets ci-dessous, ""
symbolise vide)
"EUR" par ""
"FRF" par ""
"+" par ""
" " par ""
"," par "."

C'est plus long à écrire qu'à faire. :-)
Au bout du compte, il ne te restera que les nombres avec un point comme
séparateur de décimales.

Salutations,

Daniel M.

"Raph" wrote in message
news:1g0s5yf.13m9sxm110k8g0N%
Salut à tou(te)s,

J'ai des valeurs qui se présentent sous cette forme : +12 345,67 EUR ou
-123,47 FRF et une fois copiées dans Excel, je ne peux rien en faire,
puisque c'est du texte.
Existe-t-il un moyen simple d'en obtenir la valeur numérique, par ex
sous la forme 12345.67 ?
J'ai essayé avec plusieurs rechercher-remplacer mais s'il y avait une
autre possibilité... J'ai essayé sans succès la formule
=CNUM(TEXTE(GAUCHE(CA12;NBCAR(CA12)-CHERCHE(" FRF";CA12)-4));"", je ne
trouve pas le format adéquat à mettre entre "" qui remplacerait la
virgule par un point.
Merci.

--
Raph


Avatar
raph
Daniel.M écrit:

Bonjour Raph,


Salut Daniel !

Il y a aussi moyen de procéder par 5 remplacements successifs des
mots/lettres que tu veux enlever.

Menu Édition/Remplacer (ne pas mettre les guillemets ci-dessous, ""
symbolise vide)
"EUR" par ""
"FRF" par ""
"+" par ""
" " par ""
"," par "."


C'est plus long à écrire qu'à faire. :-)
Au bout du compte, il ne te restera que les nombres avec un point comme
séparateur de décimales.


Merci. J'avais essayé et je me demandais s'il n'y avait pas plus rapide.
Mais surtout, j'avais remarqué un truc bizarre avec l'espace entre le
nombre et EUR ou FRF. Le remplacement de " " en "" ne s'effectue pas :
"Excel ne trouve pas de correspondance". Ah ! J'ai trouvé ! C'est une
espace insécable.


--
Raph

Avatar
raph
Jp Pradier écrit:

Bonjour Raph

Utilise la fonction substitue() :

=Substitue(A1;",";".")
avec -123,47 FRF renvoie -123.47 FR


Merci !

--
Raph

Avatar
Gaspareau
Dans ce cas tu peux faire remplacer " EUR" au lieu de "EUR"

--
Gaspareau

Règle anti spam
Pour réponse personnelle enlever un d au
début de mon adresse courriel


"Raph" a écrit dans le message de
news:1g0u0pu.126mrj91xiwnhvN%
Daniel.M écrit:

Bonjour Raph,


Salut Daniel !

Il y a aussi moyen de procéder par 5 remplacements
successifs des


mots/lettres que tu veux enlever.

Menu Édition/Remplacer (ne pas mettre les guillemets
ci-dessous, ""


symbolise vide)
"EUR" par ""
"FRF" par ""
"+" par ""
" " par ""
"," par "."


C'est plus long à écrire qu'à faire. :-)
Au bout du compte, il ne te restera que les nombres avec
un point comme


séparateur de décimales.


Merci. J'avais essayé et je me demandais s'il n'y avait
pas plus rapide.

Mais surtout, j'avais remarqué un truc bizarre avec
l'espace entre le

nombre et EUR ou FRF. Le remplacement de " " en "" ne
s'effectue pas :

"Excel ne trouve pas de correspondance". Ah ! J'ai trouvé
! C'est une

espace insécable.


--
Raph



Avatar
gee-dee-
Bonsoir
une réponse qui m'avait été suggérée par LL
et que Frédéric à archivé sur son site :

'renvoie le résultat d'une expression qui peut se calculer
Function CalculExp(Expression)
sExp = ""
For i = 1 To Len(Expression)
'-----!!!!!!! il y a un point aprés %
If InStr(1, ",()+*-/^0123456789%.", Mid(Expression, i, 1)) Then _
sExp = sExp + Mid(Expression, i, 1)
Next
CalculExp = Evaluate(sExp)
End Function

Sub Test()
MsgBox CalculExp("5 torchons + 3 serviettes")
Msgbox CalculExp("+12 345,67 EUR")
End Sub

Nb:
si le séparateur décimal saisi est different du séparateur par défaut,
Il peut cependant etre encore necessaire d'Utiliser la fonction substitue()
=Substitue(CalcExp(A1);",";".")
@+

"Raph" a écrit dans le message de
news:1g0s5yf.13m9sxm110k8g0N%
Salut à tou(te)s,

J'ai des valeurs qui se présentent sous cette forme : +12 345,67 EUR ou
-123,47 FRF et une fois copiées dans Excel, je ne peux rien en faire,
puisque c'est du texte.
Existe-t-il un moyen simple d'en obtenir la valeur numérique, par ex
sous la forme 12345.67 ?
J'ai essayé avec plusieurs rechercher-remplacer mais s'il y avait une
autre possibilité... J'ai essayé sans succès la formule
=CNUM(TEXTE(GAUCHE(CA12;NBCAR(CA12)-CHERCHE(" FRF";CA12)-4));"", je ne
trouve pas le format adéquat à mettre entre "" qui remplacerait la
virgule par un point.
Merci.

--
Raph