Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1139 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Excel : afficher le détail du calcul dans une autre cellule

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Excel : afficher le détail du calcul dans une autre cellule

n°2259125
hiwyx
Posté le 30-05-2015 à 10:58:22  profilanswer
 

Bonjour,
 
Je souhaiterais avoir une formule qui me permettrait d'afficher le détail d'un calcul fait dans une autre cellule. En cherchant sur internet j'ai trouvé ça :
 

Code :
  1. Function DisplayFormula(cel As Range)
  2. DisplayFormula = cel.Formula
  3. End Function


 
Je précise que si je touche un peu à tout, niveau programmation, même basique, je ne connais rien.
 
La formule affichée au dessus fait une partie de ce que je souhaiterais. Le problème c'est que si j'ai des cellules et noms de cellules en référence dans mon calcul comme ça :
 

Code :
  1. 2*A2+A5/10*taux


 
Ca va m'afficher exactement ça, sauf que j'aimerais que ça m'affiche le détail pour pouvoir l'imprimer.  
 
Mon souhait :
 

Code :
  1. 2*4.5+30/10*0.85


 
 
Quelqu'un pourrait me donner un coup de main ? :)  
 
 
Merci !

mood
Publicité
Posté le 30-05-2015 à 10:58:22  profilanswer
 

n°2259130
Marc L
Posté le 30-05-2015 à 12:31:02  profilanswer
 

 
           Bonjour,
 
           séparer chaque élément de la formule et pour ceux non numériques utiliser la fonction VBA  Evaluate  …
  

n°2259148
patrice337​40
Avec la réponse, c'est facile.
Posté le 30-05-2015 à 18:44:59  profilanswer
 

Bonjour,
 
Tu peux utiliser la propriété DirectPrédédent.
 
Voici un exemple de code
 

Code :
  1. Sub test()
  2. Dim c As Range
  3. Dim p As Range
  4. Dim f As String
  5. Dim n As Name
  6.   Set c = ActiveCell
  7.   f = c.Formula
  8.   'Remplacer les adresses absolues par des adresses relatives
  9.   f = Replace(c.Formula, "$", "" )
  10.   'Analyser chaque précédent de la cellule
  11.   For Each p In c.DirectPrecedents
  12.     'Remplacer l'adresse du précédent par sa valeur
  13.     f = Replace(f, p.Address(False, False), p.Value)
  14.     'vérifier si le précédent est un nom
  15.     On Error Resume Next
  16.     Set n = p.Name
  17.     On Error GoTo 0
  18.     If Not n Is Nothing Then
  19.       ' .. si oui, remplacer le nom par la valeur du précédent
  20.       f = Replace(f, n.Name, p.Value)
  21.     End If
  22.   Next
  23.   MsgBox f
  24. End Sub


 
Attention : ce code est simpliste. il suppose que la formule ne traite pas de chaine de caractère contenant "$"  
                ou contenant un des noms de plage nommée (par exemple "taux" ).  


---------------
Cordialement, Patrice

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Excel : afficher le détail du calcul dans une autre cellule

 

Sujets relatifs
Afficher le compteur Google Analytics sur un sitenotes jouées seulement si elles sont afficher #error N° 1.
Bug VBA : conversion .txt en .xlsx - Excel redémarreafficher la fenêtre dans une applet
exportation de graphique d'excel à power point : ne fonctionne qu'uneComment écrire une donnée dans une cellule passée en argument ?
Calculer taille image et afficher [RESOLU]VBA EXCEL impossible de modifier le contenu d'une cellule
VBA excel Consolidation de données 
Plus de sujets relatifs à : Excel : afficher le détail du calcul dans une autre cellule


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR