Bonjour,
C'est possible oui, mais en soit je vous conseille fortement que le formalisme des données soit standardisé. Tout dépend du nombre de données à traiter manuellement, de leur typologies, etc ... On peut envisager un prétraitement par VBA en remplaçant les caractères qui nous embêtent (exemple remplacer les parenthèses par des espaces), etc ... Mais il faut réaliser ce travail d'analyse en amont pour être sûr de couvrir tous les cas. Libre à vous en fonction de votre ressenti et la nécessité de réaliser ce travail ou non.
Pour les explications de la formule :
=SUBSTITUE(SUBSTITUE(A1;" ";"";2);" ";"";1) 'Remplace les espaces par rien, donc xxxxtexte-21548 xxxxxxtexte
=CHERCHE(" ";SUBSTITUE(A1;" ";"";1)) 'Renvoie la position du premier espace rencontré dans la chaîne xxxxtexte- 21548 xxxxxxtexte où j'ai supprimé le premier espace via SUBSTITUE donc la position du 1er chiffre. Soit ici 11.
=CHERCHE(" ";SUBSTITUE(SUBSTITUE(A1;" ";"";2);" ";"";1))-CHERCHE(" ";SUBSTITUE(A1;" ";"";1)) 'Renvoie le nombre de caractère entre le premier espace et le second en ayant supprimé le 1er espace avant le -. Donc le nombre de caractère compris dans la chaîne numérique soit ici 5
=STXT(SUBSTITUE(SUBSTITUE(A1;" ";"";2);" ";"";1);CHERCHE(" ";SUBSTITUE(A1;" ";"";1));CHERCHE(" ";SUBSTITUE(SUBSTITUE(A1;" ";"";2);" ";"";1))-CHERCHE(" ";SUBSTITUE(A1;" ";"";1)))&"." 'Extrait depuis la chaîne de caractère sans espaces, à partir de la position 11, sur une longueur de 5 caractères et ajoute un "." à la fin via &
Cdlt,
Edit : Bonjour mdo100, longtemps que je ne t'avais pas croisé ! Je pense que ta formule est plus efficace que la mienne ! Bravo !