Extraction d'un chiffre

Bendebs

XLDnaute Nouveau
Bonjour à tous !

Je suis a la recherche depuis plusieurs jours d'une solution pour mon problème, et même malgré de nombreuses recherches sur internet, je n'ai pas pu trouver de solution (j'ai pourtant l'impression que mon problème est courant ...).

J'ai dans un document, une colonne cellule qui se compose toujours de cette manière :
[Pkg. Profit Price=>50.00 Consumption=>0.00]
Avec un prix qui peut être différent de 50 (et supérieur à 100 également) et une consommation qui peut être différente de 0.

Je souhaites extraire de cette cellule le premier chiffre (ici 50).
J'ai l'impression que l'utilisation de STXT ne permet pas de le réaliser, et je ne suis pas assez calé en macro pour trouver une solution adaptée.

J'attends vos retours avec impatience !
 

Victor21

XLDnaute Barbatruc
Re,

Deux raisons possibles :
- Le séparateur décimal n'est point le point (ou pas le pas, ou point le pas ou ...)
- Consumption => n'est pas toujours égal à 0.00 (ce que j'avais zappé :(

Merci, JM tu as bien fait, mais ça ne gère pas la valeur de consumption. Va falloir sortir un joker :)
 

Staple1600

XLDnaute Barbatruc
Re

Une autre formule pour le fun et pour des nombres "ronds" ;)
=STXT(A1;MIN(SI(ESTNUM(CHERCHE({0;1;2;3;4;5;6;7;8;9};A1));CHERCHE({0;1;2;3;4;5;6;7;8;9};A1);""));3)*1
Et pour les nombres "pas ronds"
=SUBSTITUE(STXT(A1;MIN(SI(ESTNUM(CHERCHE({0;1;2;3;4;5;6;7;8;9};A1));CHERCHE({0;1;2;3;4;5;6;7;8;9};A1);""));6);".";",")*1

PS: Ces deux formules sont sujettes à caution si elles rencontres des nombres qui ne leur plaisent pas ;)
 

job75

XLDnaute Barbatruc
Bonsoir Bendebs, JM, Patrick,

Fichier joint avec cette fonction VBA pour extraire les nombres d'un texte :
Code:
Function ExtraireNombre(t$, ordre As Byte)
Dim i%, x$, s, n As Byte
t = " " & Replace(t, ",", ".")
For i = 2 To Len(t)
    x = Mid(t, i, 1)
    If Not IsNumeric(x) And x <> "." And x <> " " Or x = "." And Not IsNumeric(Mid(t, i - 1, 1)) _
        Then t = Left(t, i - 1) & " " & Mid(t, i + 1)
Next i
t = Application.Trim(t) 'SUPPRESPACE
s = Split(t)
For i = 0 To UBound(s)
    n = n + 1
    If n = ordre Then ExtraireNombre = Val(s(i)): Exit Function
Next
ExtraireNombre = ""
End Function
Bonne nuit.
 

Pièces jointes

  • ExtraireNombre(1).xlsm
    16.3 KB · Affichages: 16

Discussions similaires

Réponses
43
Affichages
2 K
Réponses
36
Affichages
2 K

Membres actuellement en ligne

Statistiques des forums

Discussions
314 095
Messages
2 105 816
Membres
109 435
dernier inscrit
Flore234