Extraire et additionner des chiffres se trouvant dans une cellule

charlienux -  
via55 Messages postés 14393 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.

3 réponses

  1. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    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
  2. Zoul67 Messages postés 2001 Statut Membre 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
  3. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    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