Faire appraître formule appliquée

Bonjour le forum ,

J'aimerais savoir est-ce qu'on peut faire apparaître dans les cellules les formules qui sont appliquées par une macro? Comme lorsqu'on tape une formule directement dans la cellule.

Merci d'avance

Bonjour,

Quelques définitions à clarifier :

Dans Excel : tu disposes de Fonctions (qui sont des procédures incluses dans le programme et que tu peux utiliser pour renvoyer un résultat...

Lorsque tu utilises une fonction, tu l'utilises dans une formule (dans une formules, tu peux utiliser des fonctions, des opérateurs, des constantes).

Une formule est une expression qui commence par "=". Elle n'a d'existence réelle que dans la feuille de calcul.

En VBA, tu peux manipuler tous les objets Excel, tu as donc accès aux formules de la feuille de calcul par la propriété Formula de l'objet Range : il faut bien distinguer entre 3 propriétés :

  • Formula qui renvoie le contenu, se différencie lorsqu'il s'agit d'une formule, c'est l'expression y compris le signe = qui est renvoyée (Cette propriété se décline en Formula (formule en anglais en références A1), FormulaR1C1 (anglais en réf. L1C1), FormulaLocal (langue utilisateur, réf. A1), FormulaR1C1Local (langue utilisateur, réf. L1C1),
  • Value qui renvoi aussi le contenu, mais lorsqu'il s'agit d'une formule, le résultat calculé par la formule,
  • Text qui renvoie encore le contenu mais tel qu'il apparaît, formaté le cas échéant par le format de cellule.

Tu peux donc lire ou écrire des formule avec VBA, tu peux évaleur le résultat renvoyé (avec la méthode Evaluate). Mais les formules restent des expressions qui n'ont d'effet que dans une feuille de calcul.

Parallèlement, tu peux écrire en VBA des fonction destinées à être utilisées dans une feuille de calcul (c'est à dire qui serviront à établir des formules), c'est ce qu'on appelle fonctions personnalisées, qui fonctionnent comme les fonctions d'Excel.

Mais dans ton code, tu as la possibilité d'utiliser les fonctions Excel (par la méthode WorksheetFunction). Dans ce cas là, tu n'écris pas une formule, tu la simules avec une syntaxe VBA respectant les paramètres de la fonction, pour en récupérer le résultat (sans l'apposer dans une cellule justement).

Si on résume, une macro (soit VBA), n'applique pas de formule, mais peut les lire ou les écrire dans les cellules, peut les évaluer, peut les simuler pour produire le résultat qu'elles donneraient...

En espérant ne pas avoir été trop long, cela devrait t'éclairer sur la question que tu te posais.

Cordialement.

Bonjour,

Tu veux en (appuyant sur un bouton ? ) voir les formules qui sont dans les cellules d'une feuille et non pas le résultat de ces formules ?

Si oui ceci devrait faire l'affaire :

ActiveWindow.DisplayFormulas = True

Cordialement,

Vbabeginner

Bonjour,

Voir le code suivant et adapte-le :

Sub formule()
    Range("A1").Formula= "=SUM(B1:C1)"
End Sub

Ou encore :

Sub formule()
    Range("A1").FormulaLocal = "=SOMME(B1:C1)"
End Sub

Bonjour tous le monde!!

Donc la réponse à ma question c'est non.

@ MFerrant Merci encore pour ces nouvelles explications très détaillées! Mon compte devient un livre de cours personnalisé!!

@ VBABEGINNER en faite je ne parlais pas de formules qui auraient été entrées au préalable dans les cellules mais des différentes formules qui sont utilisées dans un code VBA. En tout cas je ne connaissait pas cette fonction donc c'est intéressant! Merci!

@ Raja pendant un moment tu as remis en question ce que MFerrand m'a dit . Mais ça ma justement permis de tester le .formula dont il m'a parlé. En fait c'est exactement ce que j'ai demandé mais si j'ai bien compris ça ne marche qu'avec les formules d'Excel et pas pour des calcules "effectués moi-même" dans le code.

Si j'ai pas dit de bêtises alors je pense que le sujet est résolu!!

Merci encore pour vos réponses!!!

Bonjour du dimanche,

Une formule, ça joue son rôle dans une feuille de calcul...

Si tu construis une formule en VBA, c'est pour la mettre dans une feuille.

Sinon, elle ne te donnera pas le résultat directement, tu devras faire : Evaluate(formule) pour l'avoir...

Pour mettre bien au point ce que tu veux cerner, il faudrait que tu illustres tes intentions au lancement de la question, pour faire le tour de toutes les possibilités de solutions.

Bon dimanche.

Re,

Tu peux créer une fonction personnalisée par VBA et rendre disponible à tous les classeurs voire le doter d'une aide comme dans les formules Excel. Cherche "Fonctions personnalisée Excel" dans le net et tu trouveras ton bonheur.

Rechercher des sujets similaires à "appraitre formule appliquee"