Extraire des caractères numériques d’une cellule

gexelpas -  
 gexelpas -
Bonjour,

Je dispose de cellules contenant chacune des caractères alphabétiques et numériques.
Le but est d’extraire, grâce à une formule, que les caractères numériques.
Évidemment, ils ne sont pas toujours à la même place dans la chaîne de caractères, qui commence et se termine toujours par des lettres.
Merci d’avance pour vos suggestions !
Cdlt,

Configuration: Android / Chrome 85.0.4183.127

3 réponses

  1. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
     
    Bonjour
    avez vous quelques modèles du contenu de vos cellules, dans tous les cas de figure?
    à vous lire
    crdlmnt
    1
    1. gexelpas
       
      Bonjour Vaucluse,
      Via55 m'a proposé une solution qui fonctionne, mais merci pour votre réponse rapide !
      La prochaine fois, effectivement, je veillerai à joindre des exemples car je comprends qu'il est bien plus aisé de proposer des fonctions appliquées directement à des modèles...
      En tout cas merci !
      Cdlt,
      Gexelpas
      0
  2. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Bonjour,

    a défaut de formule voici une méthode avec vba

    Faire Alt F11 sur la feuille concernée pour accéder à l'éditeur.

    Mettre ce code qui se déclenchera au double clic sur la cellule contenant les données:

    Option Explicit
    Dim chaine As String
    Dim ligne As Long
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Not Application.Intersect(Target, Range("A:A")) Is Nothing Then 'adapter la colonne de données
    chaine = Target.Value
    ligne = Target.Row
    If chaine = "" Then Exit Sub
    extraireValeursNumeriques_DansChaine
    End If
    End Sub
    'https://silkyroad.developpez.com/VBA/ManipulerChainesCaracteres/#LI-P
    Sub extraireValeursNumeriques_DansChaine()
        Dim i As Byte, Nb As Byte
        Dim Cible As String, Resultat As String
        Dim Nombre As Double
        
        Cible = chaine
        'Pour que fonction Val puisse reconnaitre les décimales: Remplacement des
        'virgules par des points
        Cible = Replace(Cible, ",", ".")
        'Pour gérer deux nombres qui se suivent: remplacement des espaces
        'par un caractère Alpha
        Cible = Replace(Cible, " ", "x")
        
        For i = 1 To Len(Cible)
            If IsNumeric(Mid(Cible, i, 1)) Then
            Nombre = Val(Mid(Cible, i, Len(Cible) - i + 1))
            Nb = Nb + 1
            Resultat = Resultat & Nombre & ", "  'vbLf
            i = i + Len(Str(Nombre)) - 1
            End If
        Next
        Range("B" & ligne).Value = Left(Resultat, Len(Resultat) - 2)'adapter la colonne de reception
    End Sub


    1
    1. gexelpas
       
      Bonjour,
      Merci pour votre retour.
      Je suis certain que ce code fonctionne, mais Via55 m'a proposé une formule matricielle, qui fonctionne très bien et qui me permet d'éviter d'enregistrer le fichier sous un format .xlsm, pour lequel, les destinataires sont toujours un peu récalcitrants à activer lors de la réception et de l'ouverture...
      Merci en tout cas.
      Gexelpas
      0
  3. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Bonjour

    Formule matricielle de Jacques Boisgonthier
    =STXT(A1;EQUIV(VRAI;ESTNUM(CNUM(STXT(A1;LIGNE($1:$255);1)));0);SOMME((ESTNUM(CNUM(STXT(A1;LIGNE($1:$255);1))))*1))

    A valider par Ctrl+Maj+Entrée et la formule se met auto entre accolades dans la barre de formules

    Cdlmnt
    Via
    1
    1. gexelpas
       
      Bonjour Via55,
      Ce n'est pas la première fois et certainement pas la dernière :-) que vous me dépannez sur des fonctions excel...
      Tout comme Vaucluse, ci-dessus, que vous devez vous croiser sur bon nombre de posts...?
      Merci pour cette formule qui fonctionne à merveille !
      Les précédents solutions que vous et Vaucluse, avez pu m'apporter m'ont à chaque fois permis d'avancer dans l'élaboration de rapports sous excel et cela est très appréciable !
      Merci pour tout !
      Gexelpas (et c'est peu de le dire...)
      0