IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Excel Discussion :

extraire chiffre dans une ligne de texte


Sujet :

Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    .
    Inscrit en
    Novembre 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Novembre 2014
    Messages : 4
    Points : 2
    Points
    2
    Par défaut extraire chiffre dans une ligne de texte
    bonjour,

    je suis en difficulté pour trouver une formule qui me permette d'extraire les chiffres (tarif) d'une ligne de texte sous excel.

    J'ai utilisé plusieurs méthode cependant sans jamais avoir le résultat voulu.

    Exemple

    prix: 123,52 E
    prix: 23,2 E
    prix: ,00 E
    prix: 654123,56 E


    / 12345 ,45 cette somme repsente le prix...
    / 123 cette somme represente le prix du ...

    Résultat attendu

    123,52
    23,2
    0
    654123,56


    12345,45
    123


    Merci de votre aide

    exemple excel.xls

  2. #2
    Membre émérite
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 816
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 816
    Points : 2 954
    Points
    2 954
    Billets dans le blog
    10
    Par défaut
    Bonjour,

    Si tu as toujours ce schéma : "prix:_" nombre "_E" ou les underscores représentent un espace et nombre est ce que tu recherches, alors :

    =STXT(A2;7;NBCAR(A2)-8)*1

  3. #3
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 475
    Points : 5 630
    Points
    5 630
    Par défaut
    Bonjour,

    En attendant de trouver plus simple, uniquement à partir d'Excel 2007 (à cause du nombre d'imbrications) :
    =SUPPRESPACE(STXT(STXT(A1;MIN(EQUIV(VRAI;ESTNUM(--STXT(A1;LIGNE($1:$254);2));0));255);1;TROUVE(" ";STXT(STXT(A1;MIN(EQUIV(VRAI;ESTNUM(--STXT(A1;LIGNE($1:$254);2));0));255);2;255))))+0

    A valider par Ctrl+Maj+Entrée

    Edit : pour xl 2003 :
    =STXT(A1;MIN(EQUIV(VRAI;ESTNUM(--STXT(A1;LIGNE($1:$254);2));0));TROUVE(" ";A1;MIN(EQUIV(VRAI;ESTNUM(--STXT(A1;LIGNE($1:$254);2));0))+1)-MIN(EQUIV(VRAI;ESTNUM(--STXT(A1;LIGNE($1:$254);2));0)))+0

  4. #4
    Candidat au Club
    Homme Profil pro
    .
    Inscrit en
    Novembre 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Novembre 2014
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Merci,

    Vos formules marche parfaitement.

    Pour cette formule-ci dessous, le seul petit défaut vient du fait que si j'étend la formule sur 50000 ligne le temps de calcul deviens considérable.

    =STXT(A1;MIN(EQUIV(VRAI;ESTNUM(--STXT(A1;LIGNE($1:$254);2));0));TROUVE(" ";A1;MIN(EQUIV(VRAI;ESTNUM(--STXT(A1;LIGNE($1:$254);2));0))+1)-MIN(EQUIV(VRAI;ESTNUM(--STXT(A1;LIGNE($1:$254);2));0)))+0

  5. #5
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 475
    Points : 5 630
    Points
    5 630
    Par défaut
    Bonjour,

    Pour être plus rapide, tu peux utiliser une fonction personnalisée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Option Private Module
    Option Explicit
    Public Function ExtraireNombre(str As String) As Variant
    Dim t As Variant
    Dim i As Integer
      t = Split(str, " ")
      For i = LBound(t) To UBound(t)
        ExtraireNombre = Val(Replace(t(i), ",", "."))
        If IsNumeric(t(i)) Then Exit Function
      Next i
      ExtraireNombre = ""
    End Function
    Patrice

Discussions similaires

  1. Réponses: 3
    Dernier message: 23/01/2012, 14h50
  2. Incorporer une donnée Excel dans une ligne de texte Powerpoint
    Par juju_sing dans le forum VBA PowerPoint
    Réponses: 3
    Dernier message: 07/12/2011, 12h52
  3. Réponses: 8
    Dernier message: 07/12/2007, 20h48
  4. Retour à la ligne dans une zone de text
    Par hnb2003 dans le forum Access
    Réponses: 2
    Dernier message: 13/04/2006, 11h56
  5. recuperer 3 float dans une ligne d'un fichier texte
    Par obiwankennedy dans le forum C++
    Réponses: 3
    Dernier message: 14/03/2006, 03h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo