Textbox vb6 math

[Résolu]
Signaler
Messages postés
218
Date d'inscription
jeudi 13 juillet 2006
Statut
Membre
Dernière intervention
11 juillet 2010
-
Messages postés
218
Date d'inscription
jeudi 13 juillet 2006
Statut
Membre
Dernière intervention
11 juillet 2010
-
Salut!

-J'ai écris dans un textbox "2+2"

-Si sais possible: quand je clique sur le button cela me fera le calcule.

Merci

10 réponses

Messages postés
672
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
2 juin 2016
1
Bonjour
Un conseil : faire une rechreche avec "évaluateur expression arithmétique"
Messages postés
1098
Date d'inscription
mercredi 22 mars 2006
Statut
Membre
Dernière intervention
22 octobre 2019

Oui c'est possible (bien sur ) mais il faut savoir jusqu'où tu
veux aller .

Je m'explique :

1)    Veut tu simplement faire des adition? (Dans ce cas c'est super
simple)

2)    Veut tu faire des adition/soustraction/multiplication/division
(un peut plus complexe)

3)    Veut tu gérer les priorités calculatoires ( "1 + 2 * 3 = 7", ça commence à ce compliquer)

4)    Veut tu gérer les parenthèses (dur dur, enfin plus que les autres)


Dans le cas 1 c'est super simple : tu 'split' ta chaîne
(split(textbox.text,"+")) tu additionne temps que tu à des valeurs
(avec 'ubound' ou 'for each')

Dans le cas 2 il faux tester la présence/position de tout les opérateur avant
tout.

Dans le cas 3 il faux tester la position des opérateur en plus

Dans le cas 4 il faut tester la présence/position des parenthèses ouvrantes et
fermantes (là ça ce complique pour du vrais)


En espérant te répondre.


Amicalement



Pensez "Réponce acceptée"
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
Salut,
Regarde si ceci peut t'aider
(ca gère les priorité donc peu être interessant)

'pour pouvoir utiliser ce code
'Coche la référence Microsoft Script Control 1.0
'une feuille un bouton + un textbox
Private Sub Command1_Click()
Dim MyScript As New ScriptControl
Dim StrFonction As String
Dim Resultat
   StrFonction = "Function Calcul(Fin): Fin=" & Text1.Text & ":End Function"
   With MyScript
       'Langage du script
       .Language = "VBScript"
       'Reset Eventuel
       Call .Reset
       Call .AddCode(StrFonction)
       Call .Run("Calcul", Resultat)
   End With
   Call MsgBox(Resultat)

End Sub , ----
[code.aspx?ID=41455 By Renfield]

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
1098
Date d'inscription
mercredi 22 mars 2006
Statut
Membre
Dernière intervention
22 octobre 2019

Heeeee, loulou69 un "évaluateur expression
arithmétique" c'est quoi <!--[if gte vml 1]><v:shapetype id="_x0000_t75"
coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe"
filled="f" stroked="f">
<v:stroke joinstyle="miter"/>
<v:formulas>
<v:f eqn="if lineDrawn pixelLineWidth 0"/>
<v:f eqn="sum @0 1 0"/>
<v:f eqn="sum 0 0 @1"/>
<v:f eqn="prod @2 1 2"/>
<v:f eqn="prod @3 21600 pixelWidth"/>
<v:f eqn="prod @3 21600 pixelHeight"/>
<v:f eqn="sum @0 0 1"/>
<v:f eqn="prod @6 1 2"/>
<v:f eqn="prod @7 21600 pixelWidth"/>
<v:f eqn="sum @8 21600 0"/>
<v:f eqn="prod @7 21600 pixelHeight"/>
<v:f eqn="sum @10 21600 0"/>
</v:formulas>
<v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"/>
<o:lock v:ext="edit" aspectratio="t"/>
</v:shapetype><v:shape id="_x0000_i1025" type="#_x0000_t75" alt="" style='width:11.25pt;
height:11.25pt'>
<v:imagedata src="file:///C:/DOCUME~1/Vincent/LOCALS~1/Temp/msoclip1/01/clip_image001.gif"
o:href="http://www.vbfrance.com/imgs2/smile_blush.gif"/>
</v:shape><![endif]--><!--[if !vml]--><!--[endif]--><!--[if gte vml 1]><v:shape id="_x0000_i1026"
type="#_x0000_t75" alt="" style='width:11.25pt;height:11.25pt'>
<v:imagedata src="file:///C:/DOCUME~1/Vincent/LOCALS~1/Temp/msoclip1/01/clip_image002.gif"
o:href="http://www.vbfrance.com/imgs2/smile_question.gif"/>
</v:shape><![endif]--><!--[if !vml]--><!--[endif]-->

Pourrais tu donnée un exemple ou un lient qui en contiens un (une explication c'est
bien aussi)?

Merci




Amicalement



Pensez "Réponce acceptée"
Messages postés
1098
Date d'inscription
mercredi 22 mars 2006
Statut
Membre
Dernière intervention
22 octobre 2019

<!--[if gte vml 1]><v:shapetype id="_x0000_t75"
coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe"
filled="f" stroked="f">
<v:stroke joinstyle="miter"/>
<v:formulas>
<v:f eqn="if lineDrawn pixelLineWidth 0"/>
<v:f eqn="sum @0 1 0"/>
<v:f eqn="sum 0 0 @1"/>
<v:f eqn="prod @2 1 2"/>
<v:f eqn="prod @3 21600 pixelWidth"/>
<v:f eqn="prod @3 21600 pixelHeight"/>
<v:f eqn="sum @0 0 1"/>
<v:f eqn="prod @6 1 2"/>
<v:f eqn="prod @7 21600 pixelWidth"/>
<v:f eqn="sum @8 21600 0"/>
<v:f eqn="prod @7 21600 pixelHeight"/>
<v:f eqn="sum @10 21600 0"/>
</v:formulas>
<v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"/>
<o:lock v:ext="edit" aspectratio="t"/>
</v:shapetype><v:shape id="_x0000_i1025" type="#_x0000_t75" alt="" style='width:11.25pt;
height:11.25pt'>
<v:imagedata src="file:///C:/DOCUME~1/Vincent/LOCALS~1/Temp/msoclip1/01/clip_image001.gif"
o:href="http://www.vbfrance.com/imgs2/smile_shock.gif"/>
</v:shape><![endif]-->
<!--[if !vml]-->
<!--[endif]-->Hé <!--[if gte vml 1]><v:shape
id="_x0000_i1026" type="#_x0000_t75" alt="" style='width:11.25pt;height:11.25pt'>
<v:imagedata src="file:///C:/DOCUME~1/Vincent/LOCALS~1/Temp/msoclip1/01/clip_image002.gif"
o:href="http://www.vbfrance.com/imgs2/smile_blush.gif"/>
</v:shape><![endif]--><!--[if !vml]--><!--[endif]--> Bonne idée... (Je l'aurais pas hu )

En faite tu fais passé ta chaîne comme étant un script...

Vraiment pas mal sais pas quoi dire d'autre (en plus logiquement ça doit tout faire !!!)
BRAVO jrivet pour ton idée.

Amicalement
Pensez "Réponce acceptée"
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
26
Bonjour Polack,


Celà a un nom, ma foi : Eval ...

Cherche...
Messages postés
1098
Date d'inscription
mercredi 22 mars 2006
Statut
Membre
Dernière intervention
22 octobre 2019

OK, merci <!--[if gte vml 1]><v:shapetype id="_x0000_t75"
coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe"
filled="f" stroked="f">
<v:stroke joinstyle="miter"/>
<v:formulas>
<v:f eqn="if lineDrawn pixelLineWidth 0"/>
<v:f eqn="sum @0 1 0"/>
<v:f eqn="sum 0 0 @1"/>
<v:f eqn="prod @2 1 2"/>
<v:f eqn="prod @3 21600 pixelWidth"/>
<v:f eqn="prod @3 21600 pixelHeight"/>
<v:f eqn="sum @0 0 1"/>
<v:f eqn="prod @6 1 2"/>
<v:f eqn="prod @7 21600 pixelWidth"/>
<v:f eqn="sum @8 21600 0"/>
<v:f eqn="prod @7 21600 pixelHeight"/>
<v:f eqn="sum @10 21600 0"/>
</v:formulas>
<v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"/>
<o:lock v:ext="edit" aspectratio="t"/>
</v:shapetype><v:shape id="_x0000_i1025" type="#_x0000_t75" alt="" style='width:11.25pt;
height:11.25pt'>
<v:imagedata src="file:///C:/DOCUME~1/Vincent/LOCALS~1/Temp/msoclip1/01/clip_image001.gif"
o:href="http://www.vbfrance.com/imgs2/smile_big.gif"/>
</v:shape><![endif]--><!--[if !vml]--><!--[endif]-->

Par contre il semble que ça n'existe pas en VB (mais je me le mets quand même
sous le coude je suis sure que ça me servira un de ces jours)






Amicalement



Pensez "Réponce acceptée"
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
70
y'a bien EbExecuteLine, mais dispo qu'en IDE...

Renfield
Admin CodeS-SourceS- MVP Visual Basic
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Salut à tous
C'est pas toi Rey, qui à une source sur EVal ?

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, ~Provençal, le Gaulois~
  
Messages postés
218
Date d'inscription
jeudi 13 juillet 2006
Statut
Membre
Dernière intervention
11 juillet 2010

Merci les amis

surtout [auteurdetail.aspx?ID=89254 jrivet]    qui aurrai pensé, vraiment merci.