Concatener+*/

Résolu
gabrielow Messages postés 17 Statut Membre -  
Raymond PENTIER Messages postés 58213 Date d'inscription   Statut Contributeur Dernière intervention   -
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. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    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
  2. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonjour,

    voir ici

    eric
    0
  3. Raymond PENTIER Messages postés 58213 Date d'inscription   Statut Contributeur Dernière intervention   17 482
     
    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
  4. gabrielow Messages postés 17 Statut Membre
     
    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. Raymond PENTIER Messages postés 58213 Date d'inscription   Statut Contributeur Dernière intervention   17 482
       
      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. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      Salut raymond,

      tu n"as pas lu jusqu'au bout : ... et obtenir le résultat de l'opération(multiplcation,division...).
      eric
      0
    3. Raymond PENTIER Messages postés 58213 Date d'inscription   Statut Contributeur Dernière intervention   17 482
       
      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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. ccm81 Messages postés 11033 Statut Membre 2 434
     
    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
  7. gabrielow Messages postés 17 Statut Membre
     
    merci à tous.c'est exactement ce que je cherchais.
    0
  8. gabrielow Messages postés 17 Statut Membre
     
    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. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      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. gabrielow Messages postés 17 Statut Membre
       
      J'ai repris votre fichier et j'ai modifier les valeurs
      A1 B1 C1 D1
      3,12 + 2,02 #VALEUR!

      https://www.cjoint.com/?CFmm1iwvoJ1
      0
    3. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      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
  9. gabrielow Messages postés 17 Statut Membre
     
    cela marche très bien encore merci
    0