sur une cellule, j'ai le contenu suivant :
"Longueur:30
Hauteur:2 "
Ma formule pour extraire la longueur est :
=SI(ESTERREUR(TROUVE("longueur";AN91;1));CNUM(DROITE(GAUCHE(AN91;TROUVE(" ";AN91;TROUVE(":";AN91;1)));TROUVE(" ";AN91;TROUVE(":";AN91;1))-TROUVE(":";AN91;1)));"----")
Dans ce cas là ça fonctionne bien, j'ai un retour = 30
Par contre dans la cellule où j'ai :
"Longueur:15.45
Hauteur:2.1 "
la formule me retourne #VALEUR.
Je vois bien que le séparateur décimal me pose un pb car si je mets 15,45 la formule me retourne bien 15,45.
Mais seulement je travaille sur un tableau où tous les séparateurs décimaux sont des points et pour la suite des opérations il n'est pas possible de le changer en virgule.
Avez vous une idée pour améliorer ma formule SVP ?
Partant du fait que répondre aux problèmes des questionneurs est, pour nous, un réel plaisir, ne pensez-vous pas que nous devrions tous commencer nos réponses en remerciant chaleureusement le demandeur ?
Partant du fait que répondre aux problèmes des questionneurs est, pour nous, un réel plaisir, ne pensez-vous pas que nous devrions tous commencer nos réponses en remerciant chaleureusement le demandeur ?
Pour le fun, une proposition par VBA avec une formule personnalisée utilisant les expressions régulières :
(pas à toute épreuve mais ok pour les exemples donnés)
VB:
Function ExtraitNombre(c As Range) As Double
Dim M
With CreateObject("vbscript.regexp")
.Pattern = "([0-9,\.]+)"
If .test(c) Then ExtraitNombre = CDbl(.Execute(c)(0))
End With
End Function