Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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 !
 

Staple1600

XLDnaute Barbatruc
Bonjour le fil, le forum

Utilises Données/Convertir Séparateur :Autre >

Ou alors si tu veux une formule, essaies celle-ci
=SUBSTITUE(STXT(A1;CHERCHE(">";A1)+1;5);".";",")*1

EDITION: Bonjour Victor21
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re

Elle fonctionne avec un SUBSTITUE de plus
=1*SUBSTITUE(SUBSTITUE(SUBSTITUE(A1;"[Pkg. Profit Price=>";"");" Consumption=>0.00]";"");".";",")

PS: Me suis permis (sans te demander) ce petit addendum dans ta formule, Victor21
 

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
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…