Concatener+*/

Résolu
Je souhaite concaténer un cellule contenant un nombre avec une cellule contenant un opérateur(+*/-)avec une cellule contenant un nombre et obtenir le résultat de l'opération(multiplcation,division...).

8 réponses

  1. Contributeur
    Bonjour,

    avec une fonction personnalisée mise dans un module standard :
    Function eval(a As Double, op As String, b As Double) As Double
        eval = Evaluate("=" & a & op & b)
    End Function 

    https://www.cjoint.com/?CFmjzcWsoXa

    eric
    1
    1. Contributeur
      En A1 première valeur, en B1 la seconde valeur, en C1 le signe opératoire précédé d'un apostrophe, en D1 la formule (c'est donc le résultat qui s'affichera).
      En F1 la concaténation =A1&C1&B1&"="&D1
      https://www.cjoint.com/?CFmaft5Xjae

      C'est bien, la retraite ! Surtout aux Antilles ... :-)
      ☻ Raymond ♂
      0
      1. Bonjour,

        Merci Raymond, mais ce n'est pas le résultat que je souhaite.Je veux qu'avec par exemple A1=2 B1=3 et C1=+ j'obtient D1=5 et non "2+3".
        0
        1. Contributeur
          Désolé, mais j'ai répondu à la question posée hier, pas à celle que tu poses aujourd'hui : Tu as demandé à concaténer des cellules ; c'est ce que j'ai fait !
          0
        2. Contributeur
          Salut raymond,

          tu n"as pas lu jusqu'au bout : ... et obtenir le résultat de l'opération(multiplcation,division...).
          eric
          0
        3. Contributeur
          Si, j'ai tout lu, et tout répondu : ma formule donne bien le résultat de l'opération.
          Il faudrait que les gens prennent l'habitude d'exposer correctement leurs questions, pour ne pas laisser place aux quiproquos et aux mauvaises interprétations.
          Ce que j'ai proposé, c'est exactement ce qu'avait demandé, ici même, un enseignant afin de réaliser des fiches de calcul pour ses élèves ...
          Bonne journée à toi.
          0
      2. Bonjour à tous

        S'il n'y a que les 4 opérations impliquées dans l'histoire on peut faire bourrin
        =SI(C2="+";A2+B2;SI(C2="-";A2-B2;SI(C2="*";A2*B2;SI(C2="/";A2/B2;"erreur"))))

        Bonne journée
        0
        1. merci à tous.c'est exactement ce que je cherchais.
          0
          1. la fonction eval ne fonctionne pas avec des nombre à virgule du type 1,25.
            il faut multiplier par 100 et diviser par 1000

            eval(1,25*100;+;1.0*4*100)/10000
            0
            1. Contributeur
              Pas chez moi, et à-priori pas de raison que ça fasse ça.
              Sans fichier exemple...
              Remarques: plus simplement tu peux diviser par 10... Tu mélanges . et ,
              eric
              0
            2. Contributeur
              Re,

              essaie avec :
              Function eval(a As Double, op As String, b As Double) As Double
                  eval = Evaluate("=" & Replace(a, ",", ".") & op & Replace(b, ",", "."))
              End Function

              eric
              0
          2. cela marche très bien encore merci
            0