Macro, copier que les chiffres

Résolu/Fermé
tirasmusyo Messages postés 43 Date d'inscription mercredi 29 juillet 2009 Statut Membre Dernière intervention 19 août 2021 - 19 août 2011 à 10:04
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 19 août 2011 à 13:25
Bonjour,

est ce que qqn sait comment faire pour créer une macro qui récupere que les chiffres dans un texte.

par exemple
dans la case a1 c'est écrit " la quantité est de 1500kg"
et sur la case A2 je récupere que 1500

merci.

A voir également:

2 réponses

pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
19 août 2011 à 10:22
Bonjour,
Oui, moi je sais faire ça!


Enfin, disons en tout cas que quelqu'un l'a déjà fait et je vais donc profiter de son travail...
Sources Silkyroad
Macro :
Sub extraireValeursNumeriques_DansChaine()
    Dim i As Byte, Nb As Byte
    Dim Cible As String, Resultat As String
    Dim Nombre As Double
    
    Cible = Range("A1")
    '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
    
    MsgBox "Il y a " & Nb & " valeurs numériques dans la cellule " & vbLf & "en l'occurence : " & vbLf & Resultat
End Sub
--
Cordialement,
Franck P
2
tirasmusyo Messages postés 43 Date d'inscription mercredi 29 juillet 2009 Statut Membre Dernière intervention 19 août 2021
19 août 2011 à 13:23
magnifique,

je rajoute juste une chose à la fin
Range("b1") = Resultat "pour récupérer que le chiffre


merci beaucoup
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
19 août 2011 à 13:25
Effectivement le Range("B1") = Resultat, je te l'ai laissé. C'est de l'adaptation...
De rien.
A+
0