[Simple] Extraire un nombre d'un texte...

Résolu
zarbi3 -  
 zarbi3 -
Bonjour,
J'ai utiliser une fonction pour "télécharger" des données depuis internet, et j'aimerais pouvoir extraire un nombre d'une cellule ( pour copier le nombre dans une autre case )

Exemple:
J'ai "télécharger" une phrase: "Nombre de messages postés sur les forums : 3.821"
et j'aimerais pouvoir prendre le nombre, et le copier dans une autre cellule automatiquement, et dès que la cellule de base ( ou se trouve la phrase ) se modifie, que le nombre "extrais" se modifie aussi :)...

Je suis assez nouveau sous excel, donc je sais pas trop comment m'y prendre :D

Merci :)

5 réponses

  1. Raymond PENTIER Messages postés 58226 Date d'inscription   Statut Contributeur Dernière intervention   17 490
     
    Est-ce que TOUTES les phrases téléchargées ont la même structure, c'est-à-dire le nombre en dernière position et précédé de deux points (:), ou le nombre peut-il se trouver n'importe où dans la phrase ?
    1
  2. Raymond PENTIER Messages postés 58226 Date d'inscription   Statut Contributeur Dernière intervention   17 490
     
    Salut.

    Supposons que la phrase donnée en exemple soit placée dans la cellule G12.
    =NBCAR(G12) calcule le nombre total de caractères de la phrase, soit 48.
    =CHERCHE(":";G12;1) renvoie la position de départ de la première occurrence du caractère ":" dans le texte en G12, à partir de la première lettre de la phrase, soit 42. Il reste donc 48-42=6 caractères après ":".
    =DROITE(G12;6) extrait les 6 derniers caractères (ceux de droite) de la phrase en G12, soit " 3.821".
    =CNUM( DROITE(G12;6) ) devrait convertir l'expression " 3.821" en un nombre ; mais il y aura affichage du message d'erreur #VALEUR! à cause du point séparateur de milliers ; il faut donc s'en débarrasser avant d'écrire la moindre formule.

    De sorte que la manipulation globale est la suivante :
    1) Sélectionner G12 et une cellule vide (faute de quoi tout le fichier subirait la modification), faire "Remplacer/Rechercher" et taper un point, puis cliquer sur "Remplacer tout" sans rien mettre dans "Remplacer par". Ainsi la fin de la phrase devient "... forums : 3821".
    2) Saisir la formule =CNUM(DROITE(G12;NBCAR(G12)-CHERCHE(":";G12;1)))

    Bon travail ; à bientôt.
    1
    1. Denis.L Messages postés 438 Statut Membre 232
       
      Bonjour à tous,

      Si je peut me permettre de compléter ta réponse Raymond, tu ajoute la fonction "SUBSTITUE" et tu n'as pas à faire de remplacement de "point" avant.

      ce qui donne:

      =SUBSTITUE(CNUM(DROITE(G12;NBCAR(G12)-CHERCHE(":";G12;1)));".";"")

      crdlt

      Denis
      0
      1. Raymond PENTIER Messages postés 58226 Date d'inscription   Statut Contributeur Dernière intervention   17 490 > Denis.L Messages postés 438 Statut Membre
         
        Tout-à-fait, Denis ! Et merci de nous rappeler cette fonction, que j'ai le tort de ne jamais utiliser, alors qu'elle est si efficace ...
        Salutations à tous.
        0
  3. Papou79 Messages postés 36 Statut Membre 12
     
    Bonjour Zarbi3, Raymond,

    Une autre solution possible:

    Dans un module de code:

    Sub Extraction()
    With ActiveSheet
      .Range("A2").ClearContents
      For n = 1 To Len(.Range("A1").Value)
        char = Mid(.Range("A1").Value, n, 1)
        If IsNumeric(char) Then
          .Range("A2") = .Range("A2") & char
        End If
        If IsNumeric(.Range("A2")) And Not IsEmpty(.Range("A2")) And char = " " Then Exit For
      Next
    End With
    End Sub

    Sur un bouton de commande placé sur la feuille:
    Private Sub CommandButton1_Click()
    Extraction
    End Sub

    Ou bien sur un click droit dans la cellule concernée (Cellule A1 dans cet exemple):
    Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
    If ActiveCell = Range("A1") Then
      Extraction
      Cancel = True
    End If
    End Sub

    Ce programme analyse la chaine alphanumérique pour en extraire les chiffres. Si la chaine comporte plusieurs séries de nombres, l'analyse s'arrête au premier nombre rencontré.

    Espérant avoir contribué.

    Cordialement.
    1
  4. zarbi3
     
    TOUTES les phrases sont de la meme structure que en haut :)

    Par contre, les nombres, varient entre 1 et 6 chiffres :)
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. zarbi3
     
    Bon, jme suis juste debrouillé avec la formule =Droite :)

    Merci a tous :)
    0