XL 2016 Transformer une formule texte en vraie formule

SMEAGOAL

XLDnaute Junior
Bonjour,
Je m'explique:
A B C
1 5
2 6
3 =1+2 11

J'écris en B3 la formule: ="="&A1&"+"&A2, ce qui donne "=1+2"
J'aimerais que C3 recherche les cases C1 et C2 et les additionne en se référant à la cellule B3,
Est-ce possible?
Merci.
 
Solution
Il fallait ajouter un astérisque * devant le 1er HC de la formule matricielle.

Voyez le fichier joint et cette formule matricielle (simplifiée) en G12 :
Code:
=SI(SOMME(-ESTNUM(CHERCHE("+"&$A$6:$A11&"+*HC";SUBSTITUE($B12;"=";"+")&"+"&G$6:G11)));"HC";SOMME(SI(ESTNUM(TROUVE("+"&$A$6:$A11&"+";SUBSTITUE($B12;"=";"+")&"+"));G$6:G11)))
A+

SMEAGOAL

XLDnaute Junior
Alors où est le rapport avec la cellule B3 ?

Dans le fichier que tu nous donnes, tu as déjà 11 en résultat donc je ne vois vraiment pas ce que tu veux faire.
Je veux que le calcul soit automatique en fonction de ce qui est affiché en A3. Si il est écrit dans un plus grand fichier =2+15, il faut que la formule cherche les valeurs en C2 et C15 et les additionne. Et si elle doit faire =1+5+8, elle doit rechercher les valeur en C1, C5 et C8 et les additionner.
 

job75

XLDnaute Barbatruc
Bonjour SMEAGOAL, Etoto, Yeahou,

Voyez le fichier joint et cette macro affectée au bouton :
VB:
Sub Formules()
Dim tablo, i&, x$
With [A1].CurrentRegion.Resize(, 3)
    tablo = .Formula 'matrice, plus rapide
    For i = 1 To UBound(tablo)
        x = tablo(i, 2)
        If Left(x, 1) = "=" Then
            x = Replace(Replace(Replace(Replace(x, "A", "C"), "=", ""), """", ""), "&", "")
            tablo(i, 3) = "=" & x
        End If
    Next
    .Formula = tablo 'restitution
End With
End Sub
A+
 

Pièces jointes

  • Transformer une formule(1).xlsm
    17.5 KB · Affichages: 7

SMEAGOAL

XLDnaute Junior
Bonjour SMEAGOAL, Etoto, Yeahou,

Voyez le fichier joint et cette macro affectée au bouton :
VB:
Sub Formules()
Dim tablo, i&, x$
With [A1].CurrentRegion.Resize(, 3)
    tablo = .Formula 'matrice, plus rapide
    For i = 1 To UBound(tablo)
        x = tablo(i, 2)
        If Left(x, 1) = "=" Then
            x = Replace(Replace(Replace(Replace(x, "A", "C"), "=", ""), """", ""), "&", "")
            tablo(i, 3) = "=" & x
        End If
    Next
    .Formula = tablo 'restitution
End With
End Sub
A+
Merci job75!
 

Discussions similaires

Statistiques des forums

Discussions
311 709
Messages
2 081 779
Membres
101 816
dernier inscrit
Jfrcs