Extraire et additionner des chiffres se trouvant dans une cellule

Fermé
charlienux - 24 févr. 2020 à 11:07
via55 Messages postés 14509 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 2 janvier 2025 - 24 févr. 2020 à 14:52
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 14509 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 2 janvier 2025 2 739
Modifié le 24 févr. 2020 à 13:31
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 lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 149
24 févr. 2020 à 14:15
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 14509 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 2 janvier 2025 2 739
24 févr. 2020 à 14:52
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