Calculatrice vb [Résolu]

Messages postés
1
Date d'inscription
lundi 6 septembre 2004
Statut
Membre
Dernière intervention
6 septembre 2004
- - Dernière réponse : cs_EBArtSoft
Messages postés
4531
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
Afficher la suite 

5 réponses

Meilleure réponse
Messages postés
4030
Date d'inscription
mardi 13 mai 2003
Statut
Modérateur
Dernière intervention
23 décembre 2008
18
1
Merci
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

Dire « Merci » 1

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 189 internautes nous ont dit merci ce mois-ci

Messages postés
1018
Date d'inscription
samedi 22 mars 2003
Statut
Membre
Dernière intervention
24 juin 2008
0
Merci
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
Messages postés
4030
Date d'inscription
mardi 13 mai 2003
Statut
Modérateur
Dernière intervention
23 décembre 2008
18
0
Merci
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
Messages postés
1018
Date d'inscription
samedi 22 mars 2003
Statut
Membre
Dernière intervention
24 juin 2008
0
Merci
dsl, case is = 0

Bonne prog, poele_a_frire@hotmail.com
liquide
Messages postés
4531
Date d'inscription
dimanche 29 septembre 2002
Statut
Modérateur
Dernière intervention
22 avril 2019
5
0
Merci
Pourquoi cette question est dans la rubrique VBA ?

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

@+

E.B.