1 votes

Comment afficher une formule de cellule avec les valeurs des cellules au lieu des références de cellules ?

entrer la description de l'image ici

Si j'ai une formule de cellule comme celle en A4.... "=A1+A2"

Je sais que je peux utiliser la fonction FORMULATEXT() pour afficher la formule dans la cellule B4 mais je ne veux pas que la formule montre les références de cellule.

Je veux plutôt créer dans la cellule C4 une méthode pour afficher la formule de la cellule A4, mais en montrant les valeurs au lieu des références de cellule, donc "=5+10" comme résultat final. Si je change A1 en 6, l'affichage final dans C4 serait "=6+10".

La raison est que je veux que mes formules Excel soient vérifiables sur la page imprimée. Les références de cellules ne sont d'aucune utilité. Je veux voir les valeurs. J'ai besoin que cela puisse être appliqué à des centaines de formules. Donc j'espère avoir un peu de VBA pour une fonction définie par l'utilisateur que je peux ajouter à la cellule, similaire à FORMULATEXT(), sauf qu'au lieu des références de cellule, j'ai besoin des valeurs.

Merci d'avance

0voto

Ce n'est pas ainsi qu'Excel fonctionne ; si vous avez une formule dans une cellule, c'est ce qui va apparaître dans la barre de formule.

MODIFIER

Vous pouvez utiliser VBA (depuis Outils > Macros > Éditeur Visual Basic), cependant, pour écrire du code qui mettra à jour le contenu des cellules C avec les valeurs de A + B, comme ceci:

 Private Sub HideFormula()
    Dim lastrow As Long, r1 As Long

    ' Obtenez la dernière ligne de la feuille de calcul
    lastrow = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row

    For r1 = 1 à lastrow

        ' Si A & B ne sont pas vides, faites en sorte que la formule de la cellule C soit égale à A + B.
        Si Sheet1.Range("$A$" & r1).Value <> "" Et _
            Sheet1.Range("$B$" & r1).Value <> "" Alors

            ' Dans l'exemple, C2 = A1 + B1, donc décalez C de un
            Feuille1.Range("$C$" & (r1 + 1)).Value = _
                "=" & Feuille1.Range("$A$" & r1).Value & "+" & _
                Feuille1.Range("$B$" & r1).Value

        Fin si

    Suivant

Fin Sub 

MODIFIER 2

Si vous voulez remplacer le contenu d'une cellule C par les valeurs de la formule, vous pouvez utiliser la valeur .Formula pour trouver sa formule, et partir de là:

 Private Sub ReplaceFormulaWithValues()
    Dim lastrow As Long, r1 As Long
    Dim temp As String, arTemp

    ' Obtenez la dernière ligne de la feuille de calcul
    lastrow = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row

    For r1 = 1 à lastrow

        ' Si A & B ne sont pas vides, faites en sorte que la formule de la cellule C soit égale à A + B.
        Si Sheet1.Range("$C$" & r1).Value <> "" Alors

            ' Obtenez la formule de la cellule C actuelle
            temp = Remplacer(Sheet1.Range("$C$" & r1).Formula, "=")

            ' Créez un tableau en séparant la formule sur le signe +
            arTemp = Divisé(temp, "+")

            Feuille1.Range("$C$" & r1).Value = _
                "=" & Feuille1.Range(arTemp(0)).Value & "+" & _
                Feuille1.Range(arTemp(1)).Value

        Fin si

    Suivant

Fin Sub

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X