Utiliser une formule d'une cellule Excel pour VBA

Bonjour,

Je cherche à utiliser une formule dans une cellule excel en VBA

Dans un classeur "Classement" il y a en cellule D19 "0.2%*(65-X)" , cette entré est en caractère. Je souhaite pouvoir utiliser cette formule en VBA en remplacant le X par une variable nommé "age". Le X peut être à une place différente suivant les cas.

Exemple:

Si ma variable " age" vaut 10 je voudrait obtenir avec VBA 0.2%*(65-10) ce qui donne 0.11 que je pourrait par exemple mettre dans le classeur "calcul" feuille 1 cellule A1

Merci d'avance

Salut et bienvenue sur le Forum,

On peut voir ton fichier ?

Cordialement.

bonsoir,

d'après ce que j'ai compris

Sub test()
age = 10
Range("A1") = Evaluate(Replace(Range("D19"), "X", age))

End Sub

Bonjour,

Merci pour vos réponse, quand je teste le code j'ai un #VALEUR qui s affiche en A1 alors que je devrai avoir un 0.22 à la place . En tout cas vous avez parfaitement compris ce que je voulais faire. Voici le fichier Excel

17exemple.xlsx (9.23 Ko)

Salut,

Dans le fichier ci-joint je te propose 3 possibilités. En A1, directement le résultat en inscrivant la formule dans le code VBA, en A2 en plaçant une formule dans la cellule par l’intermédiaire du code et en A3 l’idée de h2so4.

Sub ss()
Dim Age As Byte

Age = InputBox("Quelle est l'âge ?")

Range("A1") = 0.004 * (65 - Age)
Range("A2").FormulaR1C1 = "=0.4%*(65-" & Age & ")"
Range("A3") = Evaluate(Replace(Range("D19"), "X", Age))

End Sub

Amicalement.

17exemple-v1.xlsm (18.20 Ko)

Merci pour la réponse rapide, la formule pour la Cellule A3 correspond exactement à ce que je veux , mais sur mon ordinateur elle ne fonctionne pas, j'ai un #Valeur qui apparait en A3 alors que en A1 et A2 j'ai bien 0.22

Il peut s'agir d'une histoire de point ou de virgule. Dans ta cellule D19, essaie les deux variantes.

En effet c'etait la virgule qui posait problème. Avec le point cela fonctionne j ai donc utiliser ce code :

Sub ss()
Dim Age As Byte
Dim formule As String

Age = 10
formule = Replace(Range("D19"), "X", Age)
Cells(1, 1) = Evaluate(Replace(formule, ",", "."))

End Sub

Si il y a possibilité d'optimiser le code je suis preneur, merci énormement , je marque le sujet comme résolu

Rechercher des sujets similaires à "utiliser formule vba"