XL 2016 Transformer une formule texte en vraie formule

  • Initiateur de la discussion Initiateur de la discussion SMEAGOAL
  • Date de début Date de début

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

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

Réponses
4
Affichages
87
  • Question Question
Microsoft 365 Formule si ?
Réponses
7
Affichages
288
Réponses
2
Affichages
488
Réponses
9
Affichages
486
Réponses
11
Affichages
291
Réponses
7
Affichages
371

Statistiques des forums

Discussions
315 297
Messages
2 118 165
Membres
113 442
dernier inscrit
Nancy3608