Extraire de nombres dans une chaîne de caractères

cy2 -  
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

J'ai besoin d'aide dans cellule j'ai des caractères comme ceux là "REFL105072050MV" je veut pouvoir extraire 105072050 sans utiliser la fonction SPLIT parce que j'ai aussi des caractères comme ceux là aussi "JTSOUD4 ALVEOL106763718MV".
La fonction SPLIT m'écrit 4 et 106763718 dans deux cellule différente ce qui ne me convient pas du tout je voudrais qu'ils soient dans la même cellule.

Configuration: Windows / Chrome 74.0.3729.108

2 réponses

  1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Bonjour,

    voir ceci:

    https://silkyroad.developpez.com/VBA/ManipulerChainesCaracteres/#LI-P

    en modifiant cela donne cela:

    Sub extraireValeursNumeriques_DansChaine()
        Dim i As Byte, Nb As Byte
        Dim Cible As String, Resultat As String
        Dim Nombre As Double
        
        Cible = Range("A1").Value
        '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("B1").Value = Resultat
       ' MsgBox "Il y a " & Nb & " valeurs numériques dans la cellule " & vbLf & Resultat
    End Sub
    


    voilà
    0
    1. cy2
       
      Bonjour,

      Merci mais mon soucis c'est pas pour VBA mais juste pour excel; écrire une formule dans une cellule et la copier pour les autres.
      0
  2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour à tous

    Avec une formule matricielle, on aura une sacrée usine à gaz très fragile !.....

    La solution pourrait passer par une fonction personnalisée plutôt que par une macro

    Par exemple
    https://mon-partage.fr/f/7W7xbNmW/
    0