Trouver les valeurs qui composent une formule

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

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

aeque

XLDnaute Occasionnel
Bonjour le forum

Encore une fois j'ai besoin de vos lumières.

J'aimerai pouvoir retrouver les montants qui compose une formule

Exemple : en A1 ma formule est
Code:
=(4000,50+250+2030+4000)*0,92

en B1 j'aimerai avoir 4000,50

C1 : 250

D1 : 2030 etc ....

à noter que la formule en A1 peut être aléatoire avec un ou plusieurs montants

Merci beaucoup

Aeque
 
Re : Trouver les valeurs qui composent une formule

Bonsoir à tous

aeque
Avec Excel 2013, on peut déjà utiliser
Code:
=FORMULETEXTE(A1)
Et ensuite on peut utiliser les fonctions classiques STXT et CHERCHE
Exemple pour extraire le premier terme
Code:
=SUBSTITUE(STXT(FORMULETEXTE(A1);2;CHERCHE("+";FORMULETEXTE(A1))-2);"(";"")
cette formule renvoie 4000
 
Re : Trouver les valeurs qui composent une formule

Bonsour®
une approche ... 🙄
VB:
Sub Macro1()
    Columns("A:A").Select
    Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=False, OtherChar _
        :="+", FieldInfo:=Array(1, 2), TrailingMinusNumbers:=True
    Columns("A:A").Select

    Cells.Replace What:="=", Replacement:="", LookAt:=xlPart, SearchOrder _
        :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
    Cells.Replace What:="(", Replacement:=" ", LookAt:=xlPart, SearchOrder _
        :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
    Cells.Replace What:=")", Replacement:=" ", LookAt:=xlPart, SearchOrder _
        :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
        
    Columns("A:A").Select
    Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=False, _
        Semicolon:=False, Comma:=False, Space:=True, Other:=True, OtherChar:= _
        "+", FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), _
        Array(6, 1)), TrailingMinusNumbers:=True
    
End Sub
 
Re : Trouver les valeurs qui composent une formule

Bonsoir à tous, Modeste Geedee

Donc si on penche vers VBA, alors une autre approche par fonction personnalisée
Code:
Function xformule(ByVal r As Range, sep$, x As Byte) As String
xformule = Split(r.Formula, sep)(x)
End Function
s'utilise ainsi
=xformule(A1;"+";0)
pour renvoyer le premier terme
=xformule(A1;"+";1)
pour renvoyer le second terme

Allez cette fois-ci, rideau ! Bonne nuit à tous.
 
Re : Trouver les valeurs qui composent une formule

Bonsoir @ tous,
N'est pas parfaite mais ça peut dire quelques choses,
Dans le gestionnaire de noms, créer un nouveau champ nommé,
MesValeurs :
Code:
=EVALUER("{"&SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(LIRE.CELLULE(6;Feuil1!$A$1);"=";);")";);"(";);"*";"+");"+";";")&"}")

en B1,
Code:
=SIERREUR(INDEX(MesValeurs;COLONNE()-1);"")
@ tirer vers la droite

@ + +
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour