Extraire et additionner des chiffres se trouvant dans une cellule

charlienux -  
via55 Messages postés 14512 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour, voici quelques exemples de contenu d'une cellule:
-5x360L -2x140L -1x240SE -1x360SE +1x240LB +2x240SE
-8x240L +3x240LB
+1x360L

Je souhaiterais extraire tous les chiffres se trouvant devant "x" puis les additionner sans prise en compte de leur signe.
Je suis parti de =GAUCHE(H2;TROUVE("x";H2)-1)*1 mais pour le coup je n'ai pas l'ensemble de la cellule.
Merci de votre aide.
A voir également:

3 réponses

via55 Messages postés 14512 Date d'inscription   Statut Membre Dernière intervention   2 746
 
Bonjour charlienux

Formule un peu longue pour le 1er cas :
=STXT(H2;TROUVE("/";SUBSTITUE(H2;"x";"/";1))-1;1)*1+STXT(H2;TROUVE("/";SUBSTITUE(H2;"x";"/";2))-1;1)*1+STXT(H2;TROUVE("/";SUBSTITUE(H2;"x";"/";3))-1;1)*1+STXT(H2;TROUVE("/";SUBSTITUE(H2;"x";"/";4))-1;1)*1+STXT(H2;TROUVE("/";SUBSTITUE(H2;"x";"/";5))-1;1)*1+STXT(H2;TROUVE("/";SUBSTITUE(H2;"x";"/";6))-1;1)*1

SUBSTITUE permet de remplacer le 1er x ou le 2me etc

Cdlmnt
Via

1
Zoul67 Messages postés 1959 Date d'inscription   Statut Membre Dernière intervention   149
 
Bonjour,

La formule de via55 est pas mal, mais ne me semble convenir que si la quantité devant le "x" varie de 1 à 9...
Une fonction VBA récursive me semblerait plus efficace.

A+
1
via55 Messages postés 14512 Date d'inscription   Statut Membre Dernière intervention   2 746
 
Bonjour Zoul

Fonction personnalisée en VBA
Function addx(plage As Range)
tablo = Split(plage.Value, "x")
For n = 0 To UBound(tablo)
tot = tot + Val(Right(tablo(n), 1))
Next
addx = tot
End Function

s'utilise selon la syntaxe =addx(H2)
0