Extraction d'un chiffre

  • Initiateur de la discussion Initiateur de la discussion Bendebs
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

B

Bendebs

Guest
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 !
 
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 🙂
 
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 😉
 
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

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
954
Réponses
4
Affichages
739
Retour