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

Problème avec une fonction .Formula et une variable numérique

  • Initiateur de la discussion Initiateur de la discussion lebarbo
  • 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 !

lebarbo

XLDnaute Occasionnel
Bonjour à tous,

Je vais essayer d'être clair sur mon problème même si c'est assez compliqué à décrire, dites moi si vous avez du mal à saisir ; ) :

Dans une macro je souhaite calculer un ratio en fonction d'une variable en temps réelle que je récupère grâce une macro dde dans une cellule excel.
Donc en A1 j'ai un chiffre qui bouge en temps réel.

Dans ma macro, je calcule une variable de type numérique et en décimale qui fait référence à d'autres données.

Ensuite je fais une formule toujours dans la macro pour mettre dans ma cellule B1 une fonction conditionnelle de type "=si" faisant référence et à ma variable numérique et à la cellule A1 comme ça ce calcul bouge en temps réel.
Donc en VBA voici un code simplifié pour illustrer :
Sheets("Feuil1").Range("B1").Formula = "=if(A1>2," & MaVariableNum & "+A1,0)"

Le problème c'est que MaVariableNum est décimalisée et que VBA ne prend que des entiers.

Pouvez vous m'aider...

Merci d'avance
 
Re : Problème avec une fonction .Formula et une variable numérique

bonjour lebarbo,

tu dois avoir une version spéciale de vba, car le mien prends bien en compte les variables décimalisées
stp, vérifies comment est déclarée ta variable, éventuellement déclares la en dim MaVar as double
si elle provient d'une conversion d'un texte, tu peux la modifier en appliquant : mavar = cdbl(mavar)
 
Re : Problème avec une fonction .Formula et une variable numérique

AAAArrrrr non en fait ça ne marche pas car mon chiffre en temps réel (dde) ressort avec une virgule donc du coup il n'est pas compris.

Si quelqu'un a déjà rencontré ce genre de problème, merci pour l'aide
 
Re : Problème avec une fonction .Formula et une variable numérique

alors récupère ton chiffre (qui n'en est pas un) et fait une conversion en chiffre à l'aide de Cdbl

Sub test()
Dim a
a = "48.3"
a = Replace(a, ".", ",")
MsgBox CDbl(a) * 2
End Sub

dans mon cas, je remplace le point par la virgule, chez toi tu fais l'inverse
 
Dernière édition:
Re : Problème avec une fonction .Formula et une variable numérique

Je viens d'essayer, ça ne marche pas, du coup pour la fonction Formula il ne considère pas que c'est un chiffre...c'est le serpent qui se mort la queue ; )
En fait il y a une solution d'après mes tests mais je ne sais pas comment le faire en VBA.
MaVariableNum = à un truc compliqué qui me sors un chiffre
il faut que je mette ce chiffre entre guillemets pour qu'après la formule .Formula l'accepte

Exemple :
a = 2.5555
Sheets("Feuil1").Range("A5").Formula = "=" & a & ""
ça ne marche pas !

a = "2.5555"
Sheets("Feuil1").Range("A5").Formula = "=" & a & ""
ça marche !

mais moi c'est pas 2.555 mais une variable donc je ne sais pas comment faire pour la mettre entre " ".

Merci d'avance.
 
Re : Problème avec une fonction .Formula et une variable numérique

bonjour
selon ton Exemple :
a = 2.5555: Sheets("Feuil1").Range("A5").Formula = "=" & a & "" 'ça ne marche pas

a = "2.5555": Sheets("Feuil1").Range("A5").Formula = "=" & a & "" 'ça marche

j'ai essayé mais ça ne donne pas de formule dans la cellule A5 !?!
pour faire cela il suffit de Sheets("Feuil1").Range("A5")= a

pour formula il lui faut un adresse valable Exp:
Adres$="=$B$12"
Sheets("Feuil1").Range("A5").Formula = Adres$

cordialement. Roland
 
Re : Problème avec une fonction .Formula et une variable numérique

Bonjour,

Comme je l'ai expliqué ci-dessus, j'ai utilisé un exemple simplifié. Dans ma formule .Formula il y a un calcul MaVariableNum (qui me pose problème) et une adresse renvoyant à une cellule (où il y a une macro dde avec un chiffre qui bouge en temps réel).
Donc pour reprendre mon exemple ça donne bien une formule puisque ça met =5 et pas 5.

Merci quand même et en espérant que quelqu'un trouve ; )
 
Re : Problème avec une fonction .Formula et une variable numérique

bonjour lebarbo

Salut mutzik
Salut merda roland

une solution legèrement capillotractée qui ne demande qu'une cellule libre (dans l'exemple C1)

Code:
mavariableNum = 2.5555
Range("C1") = mavariableNum
Sheets("Feuil1").Range("B1").Formula = "=if(A1>2,C1+A1,0)"
 
Re : Problème avec une fonction .Formula et une variable numérique

bonjour le fil
comme suit,chez moi c'est bon
MaVariableNum = "2,456"
Sheets("Feuil1").Range("B1").FormulaLocal = "=si(A1>2;" & MaVariableNum & "+A1;0)"
à bientôt
 
Re : Problème avec une fonction .Formula et une variable numérique

bonjour

salut Bebere

j'aurais juré avoir testé cette solution sans succès !!!

donc ,en partant d'un nombre:

Code:
mavariablenum = 2.456
mavariablenum = CStr(mavariablenum)
mavariablenum = Replace(mavariablenum, ".", ",")
Sheets("Feuil1").Range("B1").FormulaLocal = "=si(A1>2;" & mavariablenum & "+A1;0)"
 
Re : Problème avec une fonction .Formula et une variable numérique

OUOUOUOUOHH Génial, le FormulaLocal je ne connaissais pas bravo Bebere merci pierrejean et à tous les autres participants du fil.

Ce forum est vraiment terrible, j'évolue dans la programmation VBA au fil du temps mais y a toujours quelqu'un de plus fort que moi (et je sais qu'il y a encore un fossé énorme avec la plupart d'entre vous ), pour faire un mauvais jeu de mot c'est comme Sega !

Merciiiiii
 
- 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

D
Réponses
4
Affichages
312
DidPouAxi
D
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…