Texte ExtractNumber

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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:
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.
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour