Calculatrice vb

Résolu
bretteurs Messages postés 1 Date d'inscription lundi 6 septembre 2004 Statut Membre Dernière intervention 6 septembre 2004 - 6 sept. 2004 à 13:31
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 - 7 sept. 2004 à 08:32
Débutant en vb, je m'essaye sur une calculatrice.
Mon probleme est le suivant :

Les nombres sont écrit dans une zone de texte appelée result
il y a des boutons représentant les chiffres, d'autres les 4 opérations et ainsi de suite
bt1 pour 1
bt2 pour 2
.....
btplus pour +
btegal pour =
......
lorsque j'écrit un nombre dans ma zone de texte je voudrais en appuyant sur + pouvoir écrire un autre nombre et enfin voir le résultat avec le bouton égal
merci de votre aide

5 réponses

econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
6 sept. 2004 à 14:12
Je pense que ce petit exemple doit être suffisamment clair pour te montrer "la voie" :)

J'ai utilisé les mêmes contrôles que toi (btplus, btmoins, btegal, result)

Dim Premier_nombre_present As Boolean
Dim Deuxieme_nombre_present As Boolean
Dim Operande As String
Dim premier_chiffre As Integer
Dim deuxieme_chiffre As Integer

Private Sub btplus_Click()
 Operande = "+"
 premier_chiffre = Val(result.Text)
 result.Text = ""
 Premier_nombre_present = True
 result.SetFocus
End Sub

Private Sub btmoins_Click()
 Operande = "-"
 premier_chiffre = Val(result.Text)
 result.Text = ""
 Premier_nombre_present = True
 result.SetFocus
End Sub

Private Sub btegal_Click()
If Deuxieme_nombre_present Then
Select Case Operande
Case "+":
result.Text = CStr(premier_chiffre + deuxieme_chiffre)
Case "-":
result.Text = CStr(premier_chiffre - deuxieme_chiffre)
' ...
End Select
End If
End Sub

Private Sub Form_Load()
Premier_nombre_present = False
Deuxieme_nombre_present = False
Operande = ""
End Sub

Private Sub result_KeyUp(KeyCode As Integer, Shift As Integer)
If Premier_nombre_present Then
deuxieme_chiffre = Val(result.Text)
Deuxieme_nombre_present = True
Else
premier_chiffre = Val(result.Text)
End If
End Sub


Manu
1
cs_liquide Messages postés 1016 Date d'inscription samedi 22 mars 2003 Statut Membre Dernière intervention 24 juin 2008
6 sept. 2004 à 14:13
salut, je serais d'avis a ce que tu crees 2 variables public pour mémoriser tes valeurs
dim valeur1 as double
dim valeur2 as double

ensuite une variable public mémorisant l'opérateur
dim Operateur as string --- dans chaque bouton (en supposant qu'il ne soient pas indexés), Operateur "+" ou "-" etc etc
Valeur1 = val(text1.text)
text1.text = ""

dans le bouton "égal"
Valeur2 = val(text1.text)
text1.text = calcul 'Appel de la function et retourne la valeur

Ensuite une function general pour le calcul

public function Calcul () as double
select case operateur
case "+"
calcul = valeur1 + valeur2
case "-"
calcul = valeur1 - valeur2
case "*"
calcul = valeur1 * valeur2
case "/"
select case valeur2
case is > 0
msgbox "Division par 0, recommencez"
case else
calcul = valeur1 / valeur2
end select
end select
end sub

Dsl c'est ecrit a la "volé", quelque chose comme ceci devrait pas trop mal fonctionner.
en supposant que tu n'utilises que la souris au niveau des boutons dans ta form.

Bonne prog, poele_a_frire@hotmail.com
liquide
0
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
6 sept. 2004 à 14:21
Tiens .... le dernier post me fait dire que j'ai fait une boulette.

Ma variable operande devrait s'appeler 'operateur'.
Ca ne change rien au fonctionnement du programme, mais bon, çà fait un peu tache comme çà ... :)

Manu
0
cs_liquide Messages postés 1016 Date d'inscription samedi 22 mars 2003 Statut Membre Dernière intervention 24 juin 2008
6 sept. 2004 à 14:27
dsl, case is = 0

Bonne prog, poele_a_frire@hotmail.com
liquide
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
7 sept. 2004 à 08:32
Pourquoi cette question est dans la rubrique VBA ?

Perso si j'etait debutant je m'essayerais a autre chose...

@+

E.B.
0
Rejoignez-nous