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:

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour Magic_Doctor, Job75, Patrick, le Forum,
Bon dimanche à toutes et à tous :)
Ci-dessous pour info :
1632037325447.png

lionel :)
 

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

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 305
Messages
2 087 084
Membres
103 459
dernier inscrit
Arnocal