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

Statistiques des forums

Discussions
312 103
Messages
2 085 310
Membres
102 859
dernier inscrit
Diallokass