[COLOR="DarkSlateGray"][B]Private Sub cmdPrc_Click()
flagefface = 0
If flagtf > 0 Then Call calcul
flagtf1 = 0
flagtf = 5
End Sub
Private Sub calcul()
Select Case flagtf
Case 1
valeur1 = txtResultat.Value
valeur = valeur + valeur1
txtResultat.Value = valeur
Case 2
valeur1 = txtResultat.Value
valeur = valeur - valeur1
txtResultat.Value = valeur
Case 3
valeur1 = txtResultat.Value
valeur = valeur * valeur1
txtResultat.Value = valeur
Case 4
valeur1 = txtResultat.Value
If valeur1 > 0 Then
valeur = valeur / valeur1
txtResultat.Value = valeur
End If
Case 5
valeur1 = txtResultat.Value
valeur = valeur * valeur1 / 100
txtResultat.Value = valeur
End Select
flagv = 0
End Sub[/B][/COLOR]
Private Sub cmdPrc_Click()
flagefface = 0
If flagtf > 0 Then: Call calcul: txtResultat.Value = txtResultat.Value / 100
flagtf1 = 0
flagtf = 5
End Sub
Private Sub cmdPrc_Click()
flagefface = 0
If flagtf > 0 Then
Call calcul
txtResultat.Value = txtResultat.Value / 100
txtResultat.Value = Replace(txtResultat.Value, ",", ".")
End If
flagtf1 = 0
flagtf = 5
End Sub
Private Sub cmdPrc_Click()
flagefface = 0
If flagtf > 0 Then Call calcul
If valeur > 10 Then 'exemple: 15 * 3.5%
txtResultat.Value = valeur / 100
txtResultat.Value = Replace(txtResultat.Value, ",", ".")
End If
flagtf1 = 0
flagtf = 5
End Sub
Dim CB() As New Classe1
Sub Ouvre()
Calculatrice.txtResultat = 0
Dim c As Control, n As Byte
For Each c In Calculatrice.Controls
If TypeName(c) = "CommandButton" Then
n = n + 1
ReDim Preserve CB(1 To n)
Set CB(n).CB = c
End If
Next
Calculatrice.Show
End Sub
Public WithEvents CB As MSForms.CommandButton
Private Sub CB_Click()
Dim t$
t = Calculatrice.txtResultat
If CB.Caption = "CE" Then t = "": GoTo 1
If CB.Caption = "C" Then t = Left(t, Len(t) - 1): GoTo 1
If CB.Caption = "=" Then
If Not t Like "*#" And Not t Like "*%" Then t = Left(t, Len(t) - 1)
t = Replace(CStr(Evaluate(t)), ",", ".")
If t Like "Err*" Then t = "E" 'si erreur
Else
If t & CB.Caption Like "0#" Or t = "E" Then t = ""
If Not IsNumeric(CB.Caption) And Not t Like "*#" And Not t Like "*%" Then Exit Sub
t = t & CB.Caption
End If
1 If t = "" Then t = 0
Calculatrice.txtResultat = t
End Sub
mais ça serait bien si on éviterais d'afficher dans la textbox 2.25+2.25.
Re,
Non c'est mieux d'afficher tout ce qu'on entre avant de cliquer sur = surtout si c'est long
Private Sub txtResultat_Change()
On Error Resume Next
If Me.txtResultat.Text = "0" Then
Me.Label1.Caption = ""
Else
Me.Label1.Caption = Evaluate(Me.txtResultat.Text)
End If
End Sub