Changer une formule en calcul simple

Signaler
-
Messages postés
52353
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
29 septembre 2020
-
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

Messages postés
992
Date d'inscription
samedi 2 février 2019
Statut
Membre
Dernière intervention
30 septembre 2020
100
Bonjour,
pas sûr d'avoir tout compris ainsi que l'utilité !

Proposition en A3 : =CNUM(A1)&"+"&CNUM(B1)
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 !
Messages postés
23506
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
29 septembre 2020
6 373
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

Je ré-up le thread, je n'y arrive vraiment pas :/
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
Messages postés
23506
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
29 septembre 2020
6 373
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
Messages postés
52353
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
29 septembre 2020
14 166

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 ...