Fonction VBA - Afficher la formule d'une cellule

Bonjour,

Je mets à votre disposition une fonction personnalisée en VBA qui retourne (affiche) la formule d'une cellule.

=SOMMEPROD(A13:A17;B13:B17)
=SUMPRODUCT(A13:A17,B13:B17)
C13:  =SOMMEPROD(A13:A17;B13:B17)
C13:  =SUMPRODUCT(A13:A17,B13:B17)

La fonction propose:

1 - le résultat en langage utilisateur ou en langue anglaise (internationale).

2 - d'afficher la référence ou pas de la cellule appelée.

La fonction comporte 3 arguments non optionnels (Cellule, Langue, Adresse)

Cellule fait référence à une cellule (ex. A1) ; Langue et Adresse sont des valeurs booléennes (0/1 Faux/Vrai)

Cette fonction est à priori supportée par toutes les versions d'Excel

Voir fichier pour exemples d'utilisation.

Option Explicit
Public Function Affiche_Formule(Cellule As Range, Langue As Boolean, Adresse As Boolean) As String
Dim x As String, y As String
    Application.Volatile True
    ' si la cellule ne comporte pas de formule, on sort de la fonction.
    If Not Cellule.HasFormula Then Exit Function
    With Cellule
        ' adresse de la cellule (ex. B5)
        x = .Address(False, False) & ":  "
        If Langue Then
        ' on veut le résultat en langage utilisateur (Langue=0).
            y = .Formula
        Else
        ' on veut le résultat en langue anglaise (Langue=1).
            y = .FormulaLocal
        End If
        ' ajout des accolades si la formule est matricielle.
        If Cellule.HasArray Then y = Chr(123) & y & Chr(125)
    End With
    If Adresse Then
        ' on veut l'adresse de la cellule (Adresse=1)
        Affiche_Formule = x & y
    Else
        ' on ne veut pas l'adresse de la cellule (Adresse=0)
        Affiche_Formule = y
    End If
End Function

L'utilité d'une telle fonction n'est pas à démontrer

Bonjour, j'ai un fichier excel que j'ai reçu d'un collégue qui affiche la formule du calcul et qui ne permet pas d'afficher la valeur comment faire pour désactiver cette option pour que je puisse remplir les données.

Merci pour votre aide

Bonjour,

Fichier,

Options,

Options avancées

  • --> Afficher les options pour cette feuille de calcul
  • -----> Décocher 'Formules dans les cellules au lieu de leurs résultats calculés'.
Cdlt

Bonsoir,

Désolé, je n'avais pas du tout compris ta demande : tu voulais voir la formule...

La solution de jean-eric est fantastique. Je ne la connaissais. Merci à lui. Je l'ai stockée.

J'ajoute simplement qu'il y a aussi moyen de changer les options d'excel dans les options avancées sous "afficher les options pour cette feuille de calcul" : "Formules dans les cellules au lieu de leur résultats calculés". Tu coches cette option et les cellules contenant une formule montreront la formule et pas le résultat. Naturellement, cela n'a comme utilité que de voir les formules. Je ne sais pas au juste ce que tu comptes faire avec le résultat.

A+

Chris

Rechercher des sujets similaires à "fonction vba afficher formule"