Microsoft 365 VBA transformer une formule au format texte en formule dans excel

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 !

jujulili

XLDnaute Nouveau
Bonjour, je récupère des formules d'une base de donnée en format texte avec des noms de variable. Dans mon code j'arrive à remplacer les noms de variable par les adresses des cellules qui correspondent et en dernière étape j'ajoute un "=" au début de ma cellule pour transformer le texte en formule.
cells(i,j) = "ma formule en format texte sans = au début". Par exemple cells(i,j)="$J$31*(1-$J$11)"
cells(i,j).formula="=" & cells(i,j)

Cela fonctionne pour les formules qui ne commencent pas par une parenthèse. mais pour celles avec une parenthèse mon code plante. Avez vous une idée de ce qui bloque?
Exemple de formule qui fonctionne: $J$31*(1-$J$11) devient =$J$31*(1-$J$11)
Exemple de formule qui ne fonctionne pas: (0,0336928702890873+(0,0292808301746845-0,0336928702890873)*$J$71)/($J$8*1000*$J$71)
Pourtant si je procède manuellement dans la cellule excel en ajoutant tout simplement un "=", cela fonctionne. Ayant des centaines de formule, je cherche une solution automatique.
Merci beaucoup
Julien
 
Bonsoir jujulili, bienvenue sur XLD,

Votre Excel est sans doute une version française.

Dans ce cas pour utiliser Formula les nombres décimaux doivent s'écrire avec le point comme séparateur.

Sinon utilisez FormulaLocal :
VB:
Sub a()
Dim f$
f = "(0,0336928702890873+(0,0292808301746845-0,0336928702890873)*$J$71)/($J$8*1000*$J$71)"
[A1].FormulaLocal = "=" & f
End Sub
A+
 
Bonsoir jujulili, bienvenue sur XLD,

Votre Excel est sans doute une version française.

Dans ce cas pour utiliser Formula les nombres décimaux doivent s'écrire avec le point comme séparateur.

Sinon utilisez FormulaLocal :
VB:
Sub a()
Dim f$
f = "(0,0336928702890873+(0,0292808301746845-0,0336928702890873)*$J$71)/($J$8*1000*$J$71)"
[A1].FormulaLocal = "=" & f
End Sub
A+
Merci pour la solution "formulalocal". cela marche très bien.
 
- 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

Réponses
16
Affichages
892
Retour