Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Envoyer une formule avec variable dans une cellule via VBA

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 !

pilote301152

XLDnaute Occasionnel
Re Bonjour,

Je ne comprends pas pourquoi ma variable TTC n'est pas accepté dans le code ci-dessous!
Voici le code qui plante:

dim TTC, tva

tva=0.2
TTC = 1 + tva
ActiveSheet.Range("H9").Formula = "=if(Loyervrpa="""","""",Loyervrpa *" & TTC & ")"

Merci de votre patience et intérêt pour mon pb.
 
Re : Envoyer une formule avec variable dans une cellule via VBA

Bonjour Soenda,

Merci pour ton astuce mais hélas si la valeur LoyerTTC est bien calculée par la variable (déclarée en variant) ....cela plante toujours (erreur1004!). Quelle est cette astuce avec les crochets ("[]")?
 
Re : Envoyer une formule avec variable dans une cellule via VBA

Bonjour,

Voici une proposition pas très loin de celle de Soenda :
Sub test()
Dim TTC As Double, loyerTTC As Double
TTC = 1.2
loyerTTC = TTC * Range("Loyervrpa")
Range("H9") = "=if(" & Range("Loyervrpa").Value & "="""",""""," & Str(loyerTTC) & ")"
End Sub
 
Re : Envoyer une formule avec variable dans une cellule via VBA

Re

dim TTC, tva

tva=0.2
TTC = 1 + tva
ActiveSheet.Range("H9").Formula = "=if(Loyervrpa="""","""",Loyervrpa *" & TTC & ")"
Si le code ci-dessus se trouve dans uns un module, alors la formule de la cellule [H9] n'a pas accès à la variable TTC (puisque cette variable se trouve dans un module)

A plus

Edition : Bonjour camarchepas 🙂
 
Dernière édition:
Re : Envoyer une formule avec variable dans une cellule via VBA

Re Bonjour Soenda et Camarchepas,

le code suivant fonctionne (désolé je ne sais pas présenter comme vous en encadré!):
ActiveSheet.Range("H9").Formula = "=if(Loyervrpa="""",""""," & Str(loyerTTC) & ")"

La solution est donc dans l'utilisation de "str" sans que je ne comprenne pourquoi!
Seulement j'aurai voulu comme l'annonce Soenda voir conservé dans la formule de la feuille le détail de loyerTTC et non pas le résultat.

Je sais je suis exigeant ... mais la tva est une variable "public" déclarée dans un module et je veux pouvoir m'assurer en voyant la formule de calcul que le bon taux a été appliqué.

Merci de votre retour
 
Re : Envoyer une formule avec variable dans une cellule via VBA

Bonjour

pilote301152
le code suivant fonctionne (désolé je ne sais pas présenter comme vous en encadré!):
Pour cela il suffit d'utiliser ceci:

(Tu sélectionnes ton code VBA et tu cliques sur l'icône précitée)

(ou manuellement d'utiliser les balises BB suivantes : CODE)
 
Re : Envoyer une formule avec variable dans une cellule via VBA

Voilà après définition de la variable tva comme public dans un autre module, le code qui fonctionne mais en donnant dans la formule le résultat TTC plutôt que le détail du calcul!

Code:
Dim loyerTTC As Double
loyerTTC = (1 + tva) * [Loyervrpa]

ActiveSheet.Range("H9").Formula = "=if(Loyervrpa="""",""""," & Str(loyerTTC) & ")"


Comment donc faire pour obtenir le miracle annoncé par Soenda?

Bonne fin de WE à tous!
 
Re : Envoyer une formule avec variable dans une cellule via VBA

Re,

Une solution :
Tu définis un nom, ex : TTC
qui fera référence à = 1.2

puis dans ton code, tu écris
Code:
[H9].Formula = "=if(Loyervrpa="""","""",Loyervrpa*TTC)"
A plus
 
Re : Envoyer une formule avec variable dans une cellule via VBA

Effectivement cela marchera mais je préférais utiliser la donnée TVA dans une variable plutôt que de l'inscrire en dur dans une cellule nommée.

Merci tout de même pour l'idée.
 
Re : Envoyer une formule avec variable dans une cellule via VBA

Bonjour à tous

Effectivement cela marchera mais je préférais utiliser la donnée TVA dans une variable plutôt que de l'inscrire en dur dans une cellule nommée.

Pilote: Tu peux aussi utilser une variable défini avec Insertion Nom Définir. Mais c'est peut être plus compliqué, quoique, des fois on a des surprises avec Excel.
 
Re : Envoyer une formule avec variable dans une cellule via VBA

Re,
Bonjour Stapple1600 🙂 (que je n'avais pas vu tout à l'heure)

@pilote
Je t'ai répondu à ce sujet, au post #5

A plus

Edition : Bonjour MJ13 🙂
 
Re : Envoyer une formule avec variable dans une cellule via VBA

Re moi ,

A force de ce battre avec les formules , voici :

Sub test()
'pour l'exemple je défini tva ici sachant qu'il vient d'ailleurs
tva = 0.192
ActiveSheet.Range("H9") = "=IF(" & Range("Loyervrpa") & "="""","""",VALUE((1+0.192)* " & Range("Loyervrpa") & "))"
End Sub
 
Re : Envoyer une formule avec variable dans une cellule via VBA

Re Soenda,

J'ai bien lu ton msg en post5 ... comme je le dis au post suivant cela ne fonctionne pas chez moi ! En revanche en utilisant "str" la conversion est acceptée ... mais il est vrai que j'aurai préféré ta solution pour conserver le détail de la formule ...
Merci de ton suivi
 
Re : Envoyer une formule avec variable dans une cellule via VBA

Re moi ,

Un peu vite tout à l'heure , mais là :
Sub test()
Dim TTC As Double, loyerTTC As Double
'pour l'exemple je défini tva ici sachant qu'il vient d'ailleur
tva = 0.192
ActiveSheet.Range("H9").Formula = "=IF(Loyervrpa="""","""",VALUE((1+" & Str(tva) & ")* Loyervrpa))"
End Sub
 
- 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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…