Encore une...pfff.
Bon je m'explique : Après l'évènement, l'objet ! Sachant qu'un objet...bref.
merci de rester courtois !! @+
Source / Exemple :
Option Explicit
'--------------
'------------------------
Dim sngCurNum As Single 'le chiffre actuel
Dim sngContainer As Single 'le chiffre précédent
Dim strPreviousOp As String 'l'opérande précédente
Dim actionVirgule As Boolean 'chiffre à décimal ??
Dim lngDecimal As Long 'profondeur de la décimal !!
Dim sngPreviousResult As Single 'et l'ancien résultat ??
'------------------------
Private Sub cmdFin_Click()
Unload Me '
End Sub
'------------------------
Private Sub Form_Load()
txtResult.Text = sngCurNum '>----zéro car non initialisé
lngDecimal = 10 '>---------------première position de décimal
Debug.Print ""
End Sub
'------------------------
Private Sub cmdC_Click()
'----
sngCurNum = 0 '>-----------------on réinitialise tout
sngContainer = 0 '
sngPreviousResult = 0 '
strPreviousOp = "" '
txtResult.Text = sngCurNum '
lngDecimal = 10 '
txtsngCurNum.Text = sngCurNum '
txtsngContainer.Text = sngContainer '
txtOperateur.Text = strPreviousOp '
'---------------------------------------------------'
End Sub
'------------------------
Private Sub cmdCE_Click() '>-----Et le dernier resultat??
sngCurNum = sngPreviousResult '
sngContainer = 0 '
strPreviousOp = "" '
txtResult.Text = sngCurNum '
txtsngCurNum.Text = sngCurNum '
txtsngContainer.Text = sngContainer '
'---------------------------------------------------'
End Sub
'------------------------
Private Sub cmdOps_Click(Index As Integer)
txtsngCurNum.Text = sngCurNum
txtsngContainer.Text = sngContainer
'----
actionVirgule = False
lngDecimal = 10
On Error GoTo erreurs
'----
If strPreviousOp = "" Then
sngContainer = sngCurNum '>contenu de l'affichage dans variable
Else
Select Case strPreviousOp '>mettre le resultat dans sngContainer
Case "="
sngPreviousResult = sngContainer
strPreviousOp = ""
Case "+"
sngContainer = sngContainer + sngCurNum
Case "-"
sngContainer = sngContainer - sngCurNum
Case "*"
sngContainer = sngContainer * sngCurNum
Case "/"
sngContainer = sngContainer / sngCurNum
End Select
'----
'----
txtOperateur.Text = strPreviousOp
End If
erreurs:
If Err.Number = 11 Then
MsgBox "division par zéro", vbCritical, "Erreur"
cmdC_Click
Err.Clear
Exit Sub
End If
'----
sngCurNum = 0
'----
Select Case Index
Case 0 '>---------------------------egale
strPreviousOp = "="
Case 1 '>---------------------------addition
strPreviousOp = "+"
Case 2 '>---------------------------soustraction
strPreviousOp = "-"
Case 3 '>---------------------------multiplication
strPreviousOp = "*"
Case 4 '>---------------------------division
strPreviousOp = "/"
End Select
txtOperateur.Text = strPreviousOp
txtResult.Text = sngContainer
End Sub
'------------------------
Private Sub cmdNum_Click(Index As Integer)
If actionVirgule = False Then
sngCurNum = (sngCurNum * 10) + Index
Else
sngCurNum = sngCurNum + Index / lngDecimal
lngDecimal = lngDecimal * 10
End If
txtResult.Text = sngCurNum
End Sub
'------------------------
Private Sub cmdVirgule_Click() '>----Virgule
actionVirgule = True
End Sub
'------------------------
Private Sub cmdPourcentage_Click() '>Pourcentage
'----
sngCurNum = (sngContainer + (sngContainer * sngCurNum / 100)) - sngContainer
'----
txtResult.Text = sngCurNum
'----
End Sub
'------------------------
Conclusion :
...
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.