Calculatrice en VBA

Lone-wolf

XLDnaute Barbatruc
Bonjour à tous,

j'ai adapté le code pour mon formulaire, mais il me manque le code pour le pourcentage.

Roger, JNP si vous êtes là... au secours!! :) ;)
 

Pièces jointes

  • Calculatrice.xls
    44.5 KB · Affichages: 1 017
  • Calculatrice.xls
    44.5 KB · Affichages: 1 113
  • Calculatrice.xls
    44.5 KB · Affichages: 1 123

Lone-wolf

XLDnaute Barbatruc
Re : Calculatrice en VBA

Bonsoir job,

merci pour cette information. Mais... mise à part les multimiliardaires, moi pauvre employé sans travail :( , je me vois mal inserer autant de chiffres. Seulement à les regarder, j'ai la tête qui tourne :( ;)

Bonne nuit

Lone-wolf
 

job75

XLDnaute Barbatruc
Re : Calculatrice en VBA

Bonjour Lone-wolf, le forum,

Chez moi (Excel 2013) je constate un phénomène bizarre sur le fichier de mon post #10.

Le clic sur 1 puis sur = provoque un bug sur la ligne :

Code:
t = Replace(CStr(Evaluate(t)), ",", ".")
On vérifiera par ailleurs que l'instruction MsgBox Evaluate("1") beugue.

Il n'y a pas de problème avec les autres nombres 0 2 3 4...

J'ai trouvé que cela provient du CommandButton sur la feuille : si on le supprime, et qu'on le remplace par un autre il n'y a plus de problème.

Qu'est-ce qu'il avait donc mon bouton ???

A+
 

job75

XLDnaute Barbatruc
Re : Calculatrice en VBA

Re,

Avec ce fichier le fonctionnement de la calculatrice est classique :

Code:
Private Sub CB_Click()
Dim cbc$, t$
cbc = CB.Caption
t = Calculatrice.txtResultat
If cbc = "CE" Then f = 0: t = 0: GoTo 1
If cbc = "C" Then t = IIf(Len(t) = 1, 0, Left(t, Len(t) - 1)): f = t: GoTo 1
If IsNumeric(cbc) Then
  If f = "0" Or f Like "*=" Or Not f Like "*#" And Not f Like "*." Then
    t = cbc
    If f Like "*=" Then f = ""
  Else
    t = t & cbc
  End If
Else
  If Not f Like "*#" Then f = Left(f, Len(f) - 1)
  If cbc = "." Then
    If t Like "*." Then t = Left(t, Len(t) - 1)
    If InStr(t, ".") Then Exit Sub
    t = t & "."
  Else
    If cbc = "%" Then f = f & "%": cbc = ""
    f = Replace(CStr(Evaluate("=" & f)), ",", ".")
    t = IIf(f Like "E*", "E", f)
    If t = "E" Then f = 0
  End If
End If
f = f & cbc
1 Calculatrice.txtResultat = t
End Sub
La variable f est déclarée Public et réinitialisée dans Module1.

PS : j'ai changé le CommandButton :rolleyes:

Edit 1 : y en a marre, ça recommence avec le chiffre "2" cette fois, j'ai remplacé par un bouton de formulaire.

Edit 2 : re-marre, ça continue avec "3", alors j'ai mis :

Code:
f = Replace(CStr(Evaluate("=" & f)), ",", ".")
A+
 

Pièces jointes

  • Calculatrice de poche(1).xls
    53.5 KB · Affichages: 119
Dernière édition:

grisan29

XLDnaute Accro
Re : Calculatrice en VBA

bonsoir Job75:cool:lone_wolf:cool:laetitia:cool:madagascar :cool:et le forum

job75 tu dits avoir bataillé dans le post 19 et je te crois bien mais il reste un défaut, il faut cliqué plusieurs fois sur C pour remettre a zéro l'affichage

ras autrement parfait pour tous:cool:
 

laetitia90

XLDnaute Barbatruc
Re : Calculatrice en VBA

re tous :):):)

grisan29 :) pour remettre a zero tu as le bouton CE non???

Lone-wolf :) 15.25+15.25 =30.5 non ???

15.25+15.26 =30.51 suffisant a mon avis

je profite pour saluer le travail de l'ami JOB :):):):)
j'aurai pas fait plus simple avec une classe bravo:):):):):)

oups!!!!!!!!!! job on viens de se croiser :)
 

job75

XLDnaute Barbatruc
Re : Calculatrice en VBA

Re, bonsoir Laetitia :)

Cela dit la remarque de grisan29 m'a mis sur la voie d'une amélioration pour le bouton C :

Code:
Private Sub CB_Click()
Dim cbc$, t$
cbc = CB.Caption
t = Calculatrice.txtResultat
If cbc = "CE" Then f = 0: t = 0: GoTo 1
If cbc = "C" Then
  t = IIf(Len(t) = 1, 0, Left(t, Len(t) - 1))
  If Not f Like "*#" And Not f Like "*." Then _
    f = IIf(Len(f) = 1, 0, Left(f, Len(f) - 1))
  f = IIf(Len(f) = 1, 0, Left(f, Len(f) - 1))
  GoTo 1
End If
If IsNumeric(cbc) Then
  If f = "0" Or f Like "*=" Or Not f Like "*#" And Not f Like "*." Then
    t = cbc
    If f Like "*=" Then f = ""
  Else
    t = t & cbc
  End If
Else
  If Not f Like "*#" Then f = Left(f, Len(f) - 1)
  If cbc = "." Then
    If t Like "*." Then t = Left(t, Len(t) - 1)
    If InStr(t, ".") Then Exit Sub
    t = t & "."
  Else
    If cbc = "%" Then f = f & "%": cbc = ""
    f = Replace(CStr(Evaluate("=" & f)), ",", ".")
    t = IIf(f Like "E*", "E", f)
    If t = "E" Then f = 0
  End If
End If
f = f & cbc
1 Calculatrice.txtResultat = t
End Sub
Fichier (2).

A+
 

Pièces jointes

  • Calculatrice de poche(2).xls
    55 KB · Affichages: 43

Lone-wolf

XLDnaute Barbatruc
Re : Calculatrice en VBA

Re à tous,

Pour les difficiles :p voici la solution à mettre aprés 1 Calculatrice.txtResultat = t, si on a ajouter un Label pour le résultat.

If Calculatrice.txtResultat > 10 Then Calculatrice.Label1.Caption = Format(Calculatrice.Label1.Caption, "0.00")


En PJ calculatrice sans label.



A+ :cool:
 

Pièces jointes

  • Calculatrice.zip
    26 KB · Affichages: 41
  • Calculatrice.zip
    26 KB · Affichages: 43
Dernière édition:

Membres actuellement en ligne

Statistiques des forums

Discussions
312 922
Messages
2 093 644
Membres
105 775
dernier inscrit
assen