Changer une formule en calcul simple

Rapop -  
Raymond PENTIER Messages postés 58211 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Je souhaiterais changer une formule en calcul pour suivi d'infos.

En gros, au lieu de faire A1+A2 dans ma cellule A3, je souhaiterais qu'en cliquant sur un bouton ça m'affiche 5+5 dans la barre de formule

en claire passer de A1+A2 qui affiche 10 a 5+5 qui affiche 10 aussi, mais avec le détail a disposition dans la barre de formule

quelqu'un aurait-il une idée de comment faire ?

Merci par avance,

Rapop

Configuration: Windows / Chrome 85.0.4183.83

5 réponses

  1. Yoyo01000 Messages postés 1720 Date d'inscription   Statut Membre Dernière intervention   168
     
    Bonjour,
    pas sûr d'avoir tout compris ainsi que l'utilité !

    Proposition en A3 : =CNUM(A1)&"+"&CNUM(B1)
    1
    1. Rapop
       
      Bonjour,

      La solution ne fonctionne pas tout a fait, je pense qu'il faudrait passer par du code VBA pour changer les références dans la formule par les nombres pour que le résultat dans la cellule soit le même qu'avec un a1+a2

      Pour l'utilité c'est pour garder la décomposition d'une base d'archive, pour pouvoir masquer plusieurs dizaines de colonnes en ayant accès rapidement a la décomposition du calcul quand même.

      Voila voilà, le problème de CNUM du coup c'est que ce qui est affiché dans le cellule c'est des additions de plusieurs dizaines de data, pas vraiment joli et je ne sais pas si ca sera exploitable pour d'autres calculs par la suite !
      0
  2. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonjour,

    J'ai dans l'idée que la réalité sera moins simple, mais bon...
    Evaluer tous les termes d'une addition :
    Sub test()
    evalue Rows(3)
    End Sub

    Sub evalue(plage As Range)
    Dim pl As Range, c As Range
    Dim tmp, i As Long
    Set pl = plage.SpecialCells(xlCellTypeFormulas)
    If Not pl Is Nothing Then
    For Each c In pl
    tmp = Split(Mid(c.Formula, 2), "+")
    For i = 0 To UBound(tmp)
    tmp(i) = Evaluate(tmp(i))
    Next i
    c.Formula = "=" & Join(tmp, "+")
    Next
    End If
    End Sub

    lui passer une plage. La macro détectera les cellules avec formule à traiter.
    https://www.cjoint.com/c/JIkwBXFYS5d
    eric

    1
  3. Rapop
     
    Je ré-up le thread, je n'y arrive vraiment pas :/
    0
  4. Rapop
     
    Bonjour Eriiic,

    Effectivement le résultat souhaité est bien là, on tombe sur ce qu'il me faut, après, comme vous vous y attendiez, la réalité est moins simple,

    ci après la fonction qui doit être transformée :

    =+JL29+JI29+JF29+JC29+IZ29+IW29+IT29+IQ29+IN29+IK29+IH29

    j'ai essayé de modifier la macro pour réussir à la faire fonctionner sur une colonne plutôt qu'une ligne mais mes compétences ne me le permettent pas :(

    en tout cas merci à tous pour l'aide apportée, je continue de fouiller de mon côté voir si j'arrive à faire quelque chose,

    Rapop
    0
    1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      Bonjour,

      Déjà enlève le 1er + inutile voir si ça se passe mieux.
      Merci de déposer le fichier xls (réduit au nécessaire et anonymisé) sur cjoint.com et coller ici le lien fourni.
      Par ailleurs ma macro traite une plage et se moque totalement qu'elle soit verticale, horizontale ou rectangulaire.
      eric
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Raymond PENTIER Messages postés 58211 Date d'inscription   Statut Contributeur Dernière intervention   17 480
     

    Bonjour Rapop.

    Pourquoi faire simple quand on peut faire compliqué ?
    Tu as juste à cliquer sur une icône pour voir tes formules dans l'ensemble de ta feuille ...
    0