Changer une formule en calcul simple

Fermé
Rapop - 10 sept. 2020 à 12:41
Raymond PENTIER Messages postés 58712 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 2 novembre 2024 - 11 sept. 2020 à 15:11
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

Yoyo01000 Messages postés 1639 Date d'inscription samedi 2 février 2019 Statut Membre Dernière intervention 7 mars 2022 165
10 sept. 2020 à 12:45
Bonjour,
pas sûr d'avoir tout compris ainsi que l'utilité !

Proposition en A3 : =CNUM(A1)&"+"&CNUM(B1)
1
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
eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 7 238
11 sept. 2020 à 00:28
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
Je ré-up le thread, je n'y arrive vraiment pas :/
0
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
eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 7 238
Modifié le 11 sept. 2020 à 11:53
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Raymond PENTIER Messages postés 58712 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 2 novembre 2024 17 227
11 sept. 2020 à 15:11

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