Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Texte ExtractNumber

Magic_Doctor

XLDnaute Barbatruc
Une fonction de job75 qui renvoie un nombre contenu dans une chaîne.

VB:
Function ExtractNumber(txt As String, Optional n As Byte = 1)
'Renvoie un nombre contenu dans une chaîne
'- txt : une chaîne contenant un ou plusieurs nombres
'- n   : numéro d'ordre du nombre recherché. Si omis, le 1er
' Ex : Combo208  -33,15 romina4 | n = 1 (ou omis) --> 208
'                                 n = 2 --> -33,15
'                                 n = 3 --> 4
'job75

Dim i%, t As String, u As String, s
    txt = Replace(txt, ",", ".")
    For i = 1 To Len(txt)
        t = Mid(txt, i, 1): u = Mid(txt, i, 2)
        If t <> "." And Not (t Like "#" Or u Like "-#") Then txt = Application.Replace(txt, i, 1, " ") 'fonction REMPLACER
    Next
    s = Split(Application.Trim(txt)) 'SUPPRESPACE
    If n - 1 > UBound(s) Then ExtractNumber = "" Else ExtractNumber = Val(s(n - 1))
End Function
 
Dernière édition:

Magic_Doctor

XLDnaute Barbatruc
Bonjour Usine à gaz,

Effectivement, cette fonction ne marche pas encore pour toutes les situations, comme celle-ci, par exemple :
456Bonjour007 (si on choisit le 2ème chiffre) --> 7
Il y a, en effet, des codes qui peuvent se présenter ainsi.
Pour bien faire, il faudrait que la fonction renvoie en fait une chaîne.
 

patricktoulon

XLDnaute Barbatruc
Bonjour Magic_doctor
j'ai fait la mienne qui inclue les nombre décimaux avec les 0 devant
et te les sort en string ou numérique en option
voir la discussion GetNumONText
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…