voici une fonction qui fonctionne directement depuis une cellule. Elle extrait tous les nombres (entiers) et s'il y en a plusieurs, les renvoie séparés par un espace. Avantage, si on sait qu'il n'y en aura jamais qu'un seul, on prend la valeur renvoyée telle quelle , si on sait qu'il y en aura plusieurs mais qu'on n'aura besoin que du premier, ou du xème, on pourra le retrouver facilement depuis la cellule avec des fonctions comme STXT, GAUCHE, DROITE etc.
noter que je n'utilise pas Trim du VBA qui n'extrait que les espaces de début et de fin de chaîne, alors que SUPPRESPACE (TRIM en anglais) d'Excel supprime tous les espaces en trop à l'intérieur de la chaîne.
'cette macro dans un module
Option Explicit
Const Chiffres = '0123456789'
Function ExtraitCh$(ByVal Ch$) 'Ti
Dim Bcle&, Car$
For Bcle = 1 To Len(Ch)
Car = Mid$(Ch, Bcle, 1)
ExtraitCh = ExtraitCh & IIf(InStr(1, Chiffres, Car) > 0, Car, ' ')
Next Bcle
ExtraitCh = WorksheetFunction.Trim(ExtraitCh)
End Function