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 des nombres dans une chaîne de caractères


Sujet :

Excel

  1. #1
    Membre habitué
    Homme Profil pro
    trader
    Inscrit en
    Mars 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : trader
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2012
    Messages : 10
    Par défaut Extraire des nombres dans une chaîne de caractères
    Bonjour a toutes et a tous,

    Voila l'exemple: bernard3 4 7 8 9 11 17 18 26 27 40 42 45 47 52 53 59 62 66 68

    je souhaiterais extraire dans col A le 3 colB le 4 colC le 7 etc. et que ce soit des nombres exploitables.
    avec une formule excel et vba.

    Formule déjà essayé
    Code formule : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    STXT(A1;NBCAR(A1)-EQUIV(FAUX;ESTNUM(--(STXT(SUBSTITUE(A1;" ";"0");NBCAR(SUBSTITUE(A1;" ";"0"))-LIGNE($1:$255);1)));0)+1;99)
    STXT($A1;EQUIV(0;(ESTERR(STXT($A1;LIGNE(INDIRECT( "1:"&NBCAR($A1)));2)*1)*1);0);3)*1
    (STXT(A1;EQUIV(0;(ESTERREUR(STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1)*1)*1);0);NBCAR(A1)+1-SOMME((ESTERREUR(STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1)*1)*1))))

    Mais je n'y arrive pas.

    Merci d'avance pour vos propositions.

  2. #2
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 370
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 370
    Par défaut
    Bonjour,

    Je proposerais de le faire en 2 étapes:
    - utiliser la fonction Convertir (onglet Données) pour mettre le texte en colonnes,
    - utiliser la fonction matricielle suivante pour supprimer le texte et ne garder que les nombres:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =1*STXT(A1;EQUIV(VRAI;ESTNUM(1*STXT(A1;LIGNE($1:$9);1));0);NB(1*STXT(A1;LIGNE($1:$9);1)))
    Bonne continuation.

  3. #3
    Membre habitué
    Homme Profil pro
    trader
    Inscrit en
    Mars 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : trader
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2012
    Messages : 10
    Par défaut
    Merci, je vais essayer ta formule et je te tiens au courant.

    Bon, je viens de faire scinder le text en colonnes et ça fonctionne sur googlesheet.

    ça me donne ça et c'est ok
    colA bernard4 colB 6 etc...

    Mais Ctrl+Maj+Entrée pour matriciel je le mets ou?

    Code formule : Sélectionner tout - Visualiser dans une fenêtre à part
    1*MID(A1;MATCH(TRUE;ISNUMBER(1*MID(A1;ROW($1:$9);1));0);NB(1*MID(A1;ROW($1:$9);1)))

  4. #4
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 370
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 370
    Par défaut
    Il faut par exemple placer cette formule dans la cellule V1 (qu'il est ensuite possible copier-coller dans les cellules V2, V3, ...)
    Ensuite faire un copier - collage spécial "valeur" de cette colonne V dans la colonne A (et supprimer la colonne V).

    Je ne vois pas de solution permettant de séparer directement texte et nombre attachés sans passer par des copier/coller. Le plus simple est sans doute d'utiliser une macro.

    Cdt.

  5. #5
    Membre habitué
    Homme Profil pro
    trader
    Inscrit en
    Mars 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : trader
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2012
    Messages : 10
    Par défaut
    Merci beaucoup

  6. #6
    Membre habitué
    Homme Profil pro
    trader
    Inscrit en
    Mars 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : trader
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2012
    Messages : 10
    Par défaut
    Bon je n'ai peut être pas tout compris:

    A1

    bernard6 8 12 13 15 16 17 24 30 35 36 38 39 40 44 47 49 57 60 66

    A2 donnees/scinder le text en colonne

    ce qui me fait
    A2 bernard6-A3 8-A4 12-etc...

    La formule je la place ou en fait?
    1*MID(A1;MATCH(TRUE;ISNUMBER(1*MID(A1;ROW($1:$9);1));0);NB(1*MID(A1;ROW($1:$9);1)))
    Merci

  7. #7
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 370
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 370
    Par défaut
    Bonjour,

    Je crois que vous aurez vraiment plus facile avec une macro qu'avec des formules (à cause de ces copier-coller fastidieux).
    Une façon de faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    Option Explicit
     
    Sub SplitAA()
       Dim kR As Long, k As Long, sNb As String
       kR = 2                        '--- commence à le 2e ligne
       While Cells(kR, 1) <> ""      '--- arrêt si cellule vide
          If Cells(kR, 2) = "" Then
             '--- split si cellule colonne 2 est vide (évite de traiter 2 fois)
             Cells(kR, 1).TextToColumns Destination:=Cells(kR, 2), DataType:=xlDelimited, Space:=True
             '--- sépare texte et nb de la colonne 2
             sNb = Cells(kR, 2)
             For k = 1 To Len(sNb)
                If IsNumeric(Mid(sNb, k, 1)) Then
                   Cells(kR, 1) = Left(sNb, k - 1)
                   Cells(kR, 2) = Val(Mid(sNb, k))
                   Exit For
                End If
             Next k
          End If
          kR = kR + 1
       Wend
    End Sub
    Bonne continuation.
    Fichiers attachés Fichiers attachés

  8. #8
    Membre habitué
    Homme Profil pro
    trader
    Inscrit en
    Mars 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : trader
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2012
    Messages : 10
    Par défaut
    Grand Merci a toi

    quand je fais splitAA rien ne se passe ai-je oublié de faire quelque chose?
    autrement c est exactement ce que je veux au niveau présentation.
    Merci

  9. #9
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 370
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 370
    Par défaut
    Un clic sur le bouton 'Split A:A' traite les données placés dans les cellules de la colonne A, à partir de la 2e ligne et s'arrête dès qu'une cellule vide est rencontrée).
    Ensuite, un nouveau clic sur ce bouton ne fait plus rien, vu que le traitement a été effectué, sauf si un nouveau texte a été ajouté dans une cellule en bas de la suite de données en colonne A.
    Cordialement.
    Fichiers attachés Fichiers attachés

  10. #10
    Membre habitué
    Homme Profil pro
    trader
    Inscrit en
    Mars 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : trader
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2012
    Messages : 10
    Par défaut
    Merci infiniment EricDgn

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Extraire des nombres dans une chaine de caractère
    Par fxfxfx dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 27/05/2013, 10h41
  2. Réponses: 4
    Dernier message: 17/07/2008, 16h15
  3. Réponses: 21
    Dernier message: 28/01/2008, 20h56
  4. Récupérer un nombre dans une chaîne de caractères
    Par yougoudai dans le forum Général Python
    Réponses: 9
    Dernier message: 23/09/2007, 21h01
  5. [MySQL] extraire des nombre d'une chaine de caractères et addition
    Par Yotho dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 04/03/2006, 16h54

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